Problem
Both the Manteca add-money flow and Bridge bank flow call:
useCurrency() → getCurrencyPrice() for exchange rates
useLimitsValidation() → useLimits() → /users/limits API
If either API call hangs or is slow (common on budget Android with spotty connections):
InputAmountStep shows <PeanutLoading /> indefinitely while currencyData.isLoading
- The page appears blank/frozen with no way to interact
Neither call has a timeout, and there's no fallback UI for failed fetches.
Fix
- Add
AbortController timeout (e.g. 10s) to getCurrencyPrice() in useCurrency.ts
- Add error/timeout state to
InputAmountStep — show the amount input with a retry button for the rate instead of blocking the entire page
- Consider adding
retry: 1 and retryDelay: 2000 to the useQuery in useLimits.ts
Context
User report: app freezes on add-money/withdraw screen. Reproducible on Motorola G31 (Android 12) and G23 (Android 14).
Investigation: https://discord.com/channels/972435984954302464/1486336087747199059/1486337803708141588
Problem
Both the Manteca add-money flow and Bridge bank flow call:
useCurrency()→getCurrencyPrice()for exchange ratesuseLimitsValidation()→useLimits()→/users/limitsAPIIf either API call hangs or is slow (common on budget Android with spotty connections):
InputAmountStepshows<PeanutLoading />indefinitely whilecurrencyData.isLoadingNeither call has a timeout, and there's no fallback UI for failed fetches.
Fix
AbortControllertimeout (e.g. 10s) togetCurrencyPrice()inuseCurrency.tsInputAmountStep— show the amount input with a retry button for the rate instead of blocking the entire pageretry: 1andretryDelay: 2000to theuseQueryinuseLimits.tsContext
User report: app freezes on add-money/withdraw screen. Reproducible on Motorola G31 (Android 12) and G23 (Android 14).
Investigation: https://discord.com/channels/972435984954302464/1486336087747199059/1486337803708141588