Cryptocurrency Tracker docs
v2.0.0
Live demoConsole demo Get help
● Ship · Fixes

Troubleshooting
symptom, cause, fix.

The problems you are most likely to meet, grouped by part. Press / to search for an error message.

01App

SymptomCause 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 dataThe provider failed and the last cached value is shown ("stale": true). It clears on the next successful fetch.
The "All" chart shows only one yearCoinGecko'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 workThey come only from CoinGecko. CoinMarketCap can replace prices, not history.
"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 explorerOnly tokens among CoinGecko's top 250 are shown; others are counted as hidden (Verified tokens).
Wallet lookups fail at busy timesThe free public RPC endpoint is rate-limited. Add your own RPC URL in Console → Wallet chains.
No adsAds 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.
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 payingThe 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.

02Alerts and push

SymptomCause and fix
No push on iPhoneNo APNs key in Firebase, missing Push Notifications capability, notifications denied, or a Simulator. Test on a real device (APNs key).
No push on Android 13+The user denied the notification permission. Enable it in the system settings.
Alerts never fireFirebase → Functions → Logs: look for evaluateAlerts every 5 minutes. If it is missing, the project is not on Blaze or Cloud Scheduler is not enabled; deploy again.
Alert fired late or missed a spikeAlerts are checked every 5 minutes against current prices; a spike between two checks is not seen.
"You have reached the limit of your plan" when adding an alertThe server enforces the active-alert limit (free 3, Pro 100 by default). Change it in Console → Pro and purchases.
A campaign stays "scheduled"sendCampaigns runs every 5 minutes; check its logs.

03News and AI

SymptomCause and fix
News tab emptyConsole → Status shows each feed's result. A feed that answers but is not RSS or Atom, or blocks the server, is skipped. Check that refreshNews runs (Functions → Logs).
Always "Automatic summary", never AI"Use AI" is off, no key is set, the daily cap is reached, or the provider failed. The Functions log says AI call failed; using the automatic summary with the reason, and Status tests the key (fallback).
AI on, but users see a paywall for reportsThat is the gating: Pro, free allowance, credits or a rewarded ad (AI summaries). Raise "Free AI coin reports per user and day" to give everyone some.

04Widgets

SymptomCause and fix
iOS widget shows its empty state ("Add coins to your watchlist in the app") although the app has dataThe App Group differs between the app, the extension and the code. Fix all four places (App Group) and register the group for both App IDs.
Widget says "Open the app to enable widgets"Console → Features → Home-screen widgets is off. Turn it on; the widgets show data again after the user opens the app (Widget switches).
Widget says "Widgets are a Pro feature"Console → Pro and purchases → Home-screen widgets for Pro only is on and the user has no Pro. Intended; turn the switch off to give everyone widgets.
Widget prices update rarelyThe operating system schedules widget refreshes (target: every 30 minutes) and delays them under battery saving. Opening the app refreshes them at once.

05Backend and console

SymptomCause and fix
firebase deploy fails on functionsThe project is not on Blaze, or a Google Cloud API is not enabled yet; the CLI usually names it. Node.js must be 22.
npm run dev:api: EADDRINUSEPort 8787 is in use. PORT=8788 npm run dev:api and the same port in API_BASE_URL.
Console: "Firestore is reachable" failsGOOGLE_APPLICATION_CREDENTIALS points to a missing file or a key of another project; or set FIREBASE_PROJECT_ID.
Console: stored keys stopped working after a moveADMIN_SECRET_KEY changed. Use the original key, or enter the secrets again.
Lost the setup codeRestart the console: each start before the owner exists prints a new code.
Status lists "skipped" linesA settings list line is invalid (news source, waterfall, affiliate, sponsored slot). Fix the line as shown.
Changes in the console do not reach the appThe API caches /v1/config for 60 seconds and the app loads it when it starts; restart the app. Check "App config written to Firestore" on Status.

06Build

SymptomCause and fix
iOS build errors in Google Mobile Ads headers after upgrading packagesgoogle_mobile_ads is pinned to 9.0.0 on purpose: 9.1.0 fails to compile with use_frameworks! (comment in app/pubspec.yaml). Keep the pin until it is fixed upstream.
CocoaPods errorscd app/ios && pod repo update && pod install. CocoaPods 1.16 or newer.
Widget extension missing from the Xcode projectcd app/ios && ruby scripts/add_widget_extension.rb (idempotent).
Gradle or JDK errorsUse JDK 17 or newer and Android SDK 36; run flutter doctor.