Skip to content

feat: Implement global error boundary and graceful fallback UI (#432)#456

Closed
Xploit-Ghost wants to merge 5 commits into
Dev-Card:mainfrom
Xploit-Ghost:feat/error-boundary
Closed

feat: Implement global error boundary and graceful fallback UI (#432)#456
Xploit-Ghost wants to merge 5 commits into
Dev-Card:mainfrom
Xploit-Ghost:feat/error-boundary

Conversation

@Xploit-Ghost

Copy link
Copy Markdown

Description

This pull request addresses the issue where the application would completely crash to a blank white screen when encountering a fatal rendering error or data fetching failure. To improve the user experience, I have implemented a global Error Boundary that gracefully catches unexpected errors and presents a visually appealing fallback UI.

Proposed Changes

  1. Error Boundary Component: Implemented a global +error.svelte file at the root of the routing structure (apps/web/src/routes/) to act as the SvelteKit error boundary.
  2. Fallback UI Design: Created a clean, responsive UI component that seamlessly matches the site's design system using existing CSS classes (e.g., .glass, .btn-primary, .gradient-text).
  3. Actionable Button: Included a "Try Again" button that utilizes Svelte 5's onclick handler to seamlessly reload the browser state, alongside a "Go Home" button.
  4. Error Details: Added a stylized block to surface the specific error message and status code (e.g., 404, 500) to assist in transparent debugging.

Closes #432

Labels Requested

I would like to request the maintenance team to assign the appropriate labels for this contribution:

  • gssoc:approved
  • level2 (or the appropriate difficulty type label)
  • quality:exceptional

@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown

CI Results — ❌ Some checks failed

🖥️ Backend (⏭️ skipped)

Check Status
Lint ⚪ unknown
Test ⚪ unknown
Typecheck ⚪ unknown

📱 Mobile (⏭️ skipped)

Check Status
Lint ⚪ unknown
Test ⚪ unknown

🌐 Web (❌ failure)

Check Status
Check ❌ failure
Build ✅ success

🕐 Last updated: Mon, 01 Jun 2026 20:53:42 GMT

@Harxhit Harxhit added the gssoc:approved Required label for every approved PR. Gives the base +50 points and enables contribution tracking. label Jun 1, 2026
@Xploit-Ghost

Copy link
Copy Markdown
Author

@Harxhit Hello,
I noticed that the CI tests were failing and asked the github copilot for it
this is the response i received

Required Fix:

Your current code is right, but ensure the TypeScript/Svelte checker accepts it. The fixes you've already made should resolve it. Try these steps:

  1. Verify isHttpError is properly typed from @sveltejs/kit
  2. Ensure your svelte.config.js has strict type checking enabled
  3. Run: cd apps/web && pnpm lint to verify locally

The PR changes are good — this is just a strict type-checking build catching edge cases. Your refactoring is the correct approach.

So let me know if pr is good to merge or any more changes are required !
Please add the appropriate level quality and type label.
Thank you for your time .

@Xploit-Ghost

Xploit-Ghost commented Jun 1, 2026

Copy link
Copy Markdown
Author
image These commits are clean the CI is failing because of error with a older commit.

@ShantKhatri

Copy link
Copy Markdown
Contributor

Hi @Xploit-Ghost , we have moved from Svelt and have now migrated to React, so it's recommended to make changes with the new architecture. I'll be happy to review your updated PR. Closing this for now.

@ShantKhatri ShantKhatri closed this Jun 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc:approved Required label for every approved PR. Gives the base +50 points and enables contribution tracking.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[UI/UX Enhancement]: Implement an Error Boundary with a Fallback UI to prevent blank screens

3 participants