Skip to content

fix(api): propagate database errors correctly with 500 status code#1884

Open
panditshubham766-dotcom wants to merge 2 commits into
Priyanshu-byte-coder:mainfrom
panditshubham766-dotcom:fix/api-error-masking
Open

fix(api): propagate database errors correctly with 500 status code#1884
panditshubham766-dotcom wants to merge 2 commits into
Priyanshu-byte-coder:mainfrom
panditshubham766-dotcom:fix/api-error-masking

Conversation

@panditshubham766-dotcom
Copy link
Copy Markdown

Summary

Fixed a critical backend issue where several API routes were catching database/query failures but hiding them by returning a 200 OK status with empty fallback data. Unhandled exceptions now correctly propagate as a 500 Internal Server Error to prevent the frontend from misinterpreting database failures as successful empty responses.

Closes #1792


Type of Change

  • Bug fix

Changes Made

  • Audited caught exceptions across 11 affected API routes (including local-coding, notifications, user accounts, and wakatime endpoints).
  • Replaced silent 200 error-masking blocks with proper NextResponse.json error payloads containing a 500 status code.
  • Carefully preserved legitimate 200 empty states (like empty pins data or unconfigured profiles) so normal application behavior remains uninterrupted.

How to Test

  1. Break the local database connection configuration intentionally.
  2. Hit the updated endpoints (e.g., /api/local-coding/stats).
  3. Verify via the network tab that the API rejects the request with a clean 500 Internal Server Error payload instead of a fake 200 OK.

@vercel
Copy link
Copy Markdown

vercel Bot commented Jun 2, 2026

@panditshubham766-dotcom is attempting to deploy a commit to the PRIYANSHU DOSHI's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:bug GSSoC type bonus: bug fix labels Jun 2, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 2, 2026

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your first PR on DevTrack! 🎉

A maintainer will review it within 48 hours. While you wait:

  • Make sure CI is passing (type-check + lint)
  • Double-check the PR description is filled out and the issue is linked
  • Feel free to ask questions in Discussions if you need help

If you find DevTrack useful, a ⭐ star on the repo is always appreciated — it helps the project grow and attract more contributors!

@Priyanshu-byte-coder Priyanshu-byte-coder added gssoc:approved GSSoC: PR approved for scoring level:beginner GSSoC: Beginner difficulty (20 pts) labels Jun 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc:approved GSSoC: PR approved for scoring gssoc26 GSSoC 2026 contribution level:beginner GSSoC: Beginner difficulty (20 pts) type:bug GSSoC type bonus: bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: API routes silently masking database errors with 200 OK responses

2 participants