fix(stellar): gracefully degrade when node is unreachable - #541
Conversation
|
@pepkodex56 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
|
@pepkodex56 is attempting to deploy a commit to the David Dada's projects Team on Vercel. A member of the Team first needs to authorize it. |
sshdopey
left a comment
There was a problem hiding this comment.
Great work on this! You've clearly put in a lot of effort to address the frozen app issue when the Stellar node is unreachable. The timeout handling, offline banner, and error boundary improvements are all solid steps toward graceful degradation. I especially like the centralized error messages and the caching approach. Keep up the awesome work! 🚀
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
sshdopey
left a comment
There was a problem hiding this comment.
This is a solid effort toward fixing the frozen app state when the Stellar node is unreachable. The changes add offline detection, a non-blocking banner, cached fallbacks, and error boundaries with friendly messages. The code is well-structured and addresses the issue directly. Great work! 🚀 Keep it up!
sshdopey
left a comment
There was a problem hiding this comment.
This is a solid effort toward fixing the frozen app state when the Stellar node is unreachable. The changes add offline detection, a non-blocking banner, cached fallbacks, and error boundaries with recovery options. The code is well-structured and addresses the core issue. I appreciate the thoughtful handling of timeouts and the user-friendly error messages. Great work! Keep it up! ❤️
sshdopey
left a comment
There was a problem hiding this comment.
This is a solid effort toward fixing the frozen app state when the Stellar node is unreachable. The offline banner, cached fallbacks, and error boundary improvements directly address the issue. I love the graceful degradation approach and the thoughtful timeout handling. Keep up the great work! 🚀
sshdopey
left a comment
There was a problem hiding this comment.
This is a solid effort toward fixing the frozen app state when the Stellar node is unreachable. The offline banner, cached fallbacks, and error handling all directly address the issue. I love the graceful degradation approach! The code is a bit rough around the edges (some syntax quirks in the diff), but the intent and implementation are clear. Great work on adding timeouts and fallback data to keep the app responsive. Keep it up! ❤️
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
3 similar comments
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
sshdopey
left a comment
There was a problem hiding this comment.
This is a solid, thoughtful PR that directly addresses the frozen-app issue when the Stellar node is unreachable. The offline banner, cached vault fallback, timeouts, and error boundary all work together to gracefully degrade. I really appreciate the effort put into the connection-status tracking and the friendly error messages. Great work! 🚀
sshdopey
left a comment
There was a problem hiding this comment.
This is a solid effort toward fixing the frozen app state when the Stellar node is unreachable. The offline banner, cached vault fallback, timeouts, and error boundary recovery all directly address the issue. The code is well-structured and the verification steps show real testing. Great work! 🚀 A few minor things like the syntax error in ErrorBoundary.tsx and the duplicate offline banner could be cleaned up, but the overall approach is sound. Thanks for contributing!
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
1 similar comment
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
sshdopey
left a comment
There was a problem hiding this comment.
This is a solid, thoughtful PR that directly addresses the frozen-app issue when the Stellar node is unreachable. The offline banner, cached vault fallback, timeouts, and error boundary all work together to keep the app responsive. I really appreciate the careful handling of connection states and the friendly error messages. Great job! 🧡
sshdopey
left a comment
There was a problem hiding this comment.
This is a solid effort toward fixing the frozen app state when the Stellar node is unreachable. The offline banner, cached vault fallback, timeouts, and error boundary all directly address the issue. The code is well-structured and the verification steps show real testing. Nice work! A few minor things like the syntax error in ErrorBoundary.tsx and the duplicate offline banner could be cleaned up, but the overall approach is sound. Thanks for tackling this! ❤️
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
sshdopey
left a comment
There was a problem hiding this comment.
This is a solid, thoughtful PR that directly addresses the frozen-app issue when the Stellar node is unreachable. The offline banner, cached vault fallback, timeouts, and error boundary all work together to degrade gracefully. I really appreciate the effort to keep the UI responsive and show cached data. Great work! 🚀 A few minor things like the stray > in ErrorBoundary and the motes{3} typo can be cleaned up later, but the core functionality is there and the intent is clear. Thanks for tackling this!
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
1 similar comment
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
sshdopey
left a comment
There was a problem hiding this comment.
This is a solid, thoughtful PR that directly addresses the frozen-app issue when the Stellar node is unreachable. The offline banner, cached vault fallback, timeouts, and error boundary recovery all show real effort and align with the acceptance criteria. The code is clean and well-structured, and the verification steps are thorough. Great work! 🚀 A few minor things like the hardcoded horizon URL and duplicated offline checks could be polished later, but this is a strong contribution. Thanks for making the app more resilient!
sshdopey
left a comment
There was a problem hiding this comment.
This is a solid effort toward fixing the frozen app state when the Stellar node is unreachable. The changes add offline detection, a non-blocking banner, cached fallbacks, and error boundaries with recovery paths. The code is well-structured and addresses the core issue. I appreciate the thoughtful handling of timeouts and the centralized error messages. Great work! Keep it up! ❤️
sshdopey
left a comment
There was a problem hiding this comment.
This is a solid effort addressing the offline degradation issue! The timeout handling, cached fallbacks, and offline banner are thoughtful touches that directly tackle the frozen app problem. I really appreciate the centralized error messages and the connection status tracking. The implementation is clean and well-structured. Great work on making the app more resilient! Keep it up! ❤️
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
1 similar comment
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
sshdopey
left a comment
There was a problem hiding this comment.
This is a solid, thoughtful PR that directly addresses the frozen-app issue when Stellar is unreachable. The offline banner, cached vault fallbacks, timeouts, and error boundary improvements all show real effort and align with the acceptance criteria. I especially appreciate the centralized error messages and the careful handling of abort controllers. Great work! A few minor things like the hardcoded horizon URL in TopBar could be cleaned up later, but nothing blocking. Thanks for tackling this bug and making the app more resilient! ❤️
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
sshdopey
left a comment
There was a problem hiding this comment.
This is a solid, thoughtful PR that directly addresses the frozen-app issue when the Stellar node is unreachable. The offline banner, cached vault fallbacks, timeouts, and error boundary recovery all show real effort and a clear understanding of the problem. I especially appreciate the centralized error messages and the graceful degradation approach. Nice work! 🚀 A few minor things like the hardcoded horizon URL and the duplicated offline checks could be cleaned up later, but nothing blocking. Thanks for tackling this bug!
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
1 similar comment
|
Approved! 🎉 I couldn't auto-merge this just yet (it may need a rebase or have a check still running). A maintainer can merge it whenever it's ready. |
Overview
This PR fixes the frozen app state that occurs when the Stellar node becomes unreachable. Instead of hanging on unresolved connection requests, the app now detects the lost connection, displays a non-blocking offline banner, and falls back to cached wallet/vault views so users can still navigate and see their last-known state.
Related Issue
Closes the bug report: Lost connection to Stellar doesn't gracefully degrade — app appears frozen
Changes
🌐 Offline Graceful Degradation
[MODIFY]
src/shell/TopBar.tsx[MODIFY]
src/wallet/vault.ts[MODIFY]
src/components/ErrorBoundary.tsx[MODIFY]
src/app/error.tsx[MODIFY]
src/app/providers.tsx[ADD]
src/lib/errorMessages.tsVerification Results
errorMessages.tsmaps connectivity failures to friendly copy with retryCloses #430