| Symptom | Cause and fix |
| Setup screen "Set your API address" | The build has no API_BASE_URL. Run or build with --dart-define=API_BASE_URL=https://<region>-<project>.cloudfunctions.net/api, no trailing slash. |
| Setup screen "Connect your Firebase project" | lib/firebase_options.dart is still the placeholder. Run flutterfire configure in app/ (Installation). |
| "Market data is temporarily unavailable" | The API answered 503 upstream_unavailable: every provider failed and nothing was cached. Usually CoinGecko's keyless rate limit. Enter a free CoinGecko Demo key, and a CoinMarketCap key for failover (Data providers). |
| A "Cached" label on data | The provider failed and the last cached value is shown ("stale": true). It clears on the next successful fetch. |
| The "All" chart shows only one year | CoinGecko's Public and Demo plans serve 365 days of history ("limitedTo":"1y"). A Pro plan serves the full history. |
| Charts or exchange tickers missing while prices work | They come only from CoinGecko. CoinMarketCap can replace prices, not history. |
| The 1H button is greyed out in candle mode ("Candles start at 24H") | Intended, on every CoinGecko plan: CoinGecko's smallest candle is 30 minutes, so the shortest candle range is 24H. Switch the chart to Line for 1H (Candlesticks). |
| Candles for ALL show only one year ("ALL limited to 1Y by the data plan") | The Public and Demo plans serve 365 days of candles; days=max is answered with the last year and "limitedTo":"1y". A CoinGecko Pro plan serves the full history. |
| Candles do not load but the line chart works, or neither loads | GET /v1/coins/{id}/ohlc answered 503 chart_unavailable: CoinGecko failed (often the keyless rate limit) and nothing was cached. Candles are a separate CoinGecko call per range; enter a CoinGecko Demo key. |
| The Fear & Greed card is missing on the markets screen | Either Console → Features → Fear & Greed index on Markets is off (the API answers 404 not_found), or Alternative.me is down and nothing is cached: GET /v1/feargreed answers 503 upstream_unavailable and the app hides the card until the next refresh. Check <API_BASE_URL>/v1/feargreed in a browser (Fear & Greed index). |
| No "Community sentiment" card on a coin page | CoinGecko has no community votes for that coin ("sentiment": null), or the coin data came from the cache of an older backend version; it appears once the coin detail is fetched again (cache time "Coin detail", default 10 minutes). |
| Animations do not play | The phone asks apps to reduce motion (iOS Reduce Motion, Android Remove animations). The app then skips decorative animation on purpose (Motion). |
| "The account could not be deleted. Please try again." | DELETE /v1/me failed: no network, more than 5 tries in a minute, or a server error (Functions → Logs). Nothing is lost by retrying; a repeated deletion is safe (Account deletion). |
| A Google, Apple or e-mail sign-in button shows "Sign-in failed" | That provider is not enabled under Firebase → Authentication → Sign-in method, or (Apple) the capability or provider settings are missing (Sign-in methods). Enable the provider, or switch the button off in the console under Settings → Sign-in methods. |
| "This account has been suspended" | The user is banned in the console (Users page). Unban there. |
| Wallet: "This address is not valid for the selected chain" | Wrong chain or format (formats). Bitcoin xpubs are not supported. |
| Wallet shows fewer tokens than an explorer | Only tokens among CoinGecko's top 250 are shown; others are counted as hidden (Verified tokens). |
| Wallet lookups fail at busy times | The free public RPC endpoint is rate-limited. Add your own RPC URL in Console → Wallet chains. |
| No ads | Ads are off by default: switch on Show ads and at least one placement, and enter the ids. Pro and Remove-ads users never see ads. Release builds never use test ids. New ad units can take time to fill. Step-by-step check: Ads do not show in release builds. |
| Purchase fails with "The store is not available on this device" | If the API log shows 503 iap_unconfigured, store verification is not set up in the console (Purchases). |
| Purchase not granted after paying | The API answered 400 "The purchase could not be verified" (Functions log). Bundle id or package name in the console does not match the build; the product id differs; or the App Store environment is Production while you test in the sandbox. |