Skip to content

[BUG] Handle failed fetch() calls more safely #3121

Closed

Description

@rudrakshtank

Bug Description

Right now, if any internal fetch() rejects due to a network/runtime error, the whole route fails after the rate limit has already been consumed.

You currently handle res.ok === false, but not thrown fetch errors or invalid JSON.

Steps to Reproduce

const [contributionsRaw, prsRaw, streakRaw, reposRaw] = await Promise.all([
fetchJsonOrEmpty(
${baseUrl}/api/metrics/contributions?days=90,
headers
),
fetchJsonOrEmpty(
${baseUrl}/api/metrics/prs,
headers
),
fetchJsonOrEmpty(
${baseUrl}/api/metrics/streak,
headers
),
fetchJsonOrEmpty(
${baseUrl}/api/metrics/repos?days=90,
headers
),
]);

This prevents one broken metrics endpoint from killing the entire insight route.

Affected Area

API Routes

Screenshots

No response

Browser & OS

No response

Environment

None

Additional Context

No response

Activity

  1. rudrakshtank commented on Jul 3, 2026

    @rudrakshtank
    ContributorAuthor

    I would like to work on this issue under GSSoC'26.

  2. github-actions commented on Jul 3, 2026

    @github-actions

    Assigned to @rudrakshtank! You have 7 days to open a PR. No PR after 7 days = auto-unassigned so others can pick it up. Good luck!

  3. github-actions commented on Jul 12, 2026

    @github-actions

    ✅ Closed as completed!

    If DevTrack has been useful, a ⭐ star on the repo helps the project grow and reach more developers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingneeds-triageNeeds maintainer triage

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions