Skip to content

Firebase Remote ConfigFirebase Remote Config not updating (or FetchThrottledException)

You publish a new value in the Firebase console, open the app, and it still shows the old one. Or a fetch fails with FirebaseRemoteConfigFetchThrottledException on Android or FIRRemoteConfigFetchStatusThrottled on iOS. Remote Config caches values on the device, only fetches again after a minimum interval, and only uses fetched values once the app activates them. Here is how each step works in Firebase’s words, or hand it over at a fixed price.

Rather hand it over? App Fix Ticket: One reproducible bug in an existing mobile or web app, diagnosed and fixed.

Full refund if Simon can’t take it on once he sees your project, or if you cancel before work starts. Refund terms.

Short answer

By default the SDK fetches from Firebase at most once every 12 hours, and fetched values only apply after activate() (or fetchAndActivate()). For testing, set a low minimum fetch interval in a debug build only. For updates that should reach users quickly, add a real-time config update listener, which skips the fetch interval. Throttling errors mean the app fetched too often: fetch once per launch and listen for updates instead.

Rather not fix it yourself? App Fix Ticket starts with a fixed-price diagnosis, then a fixed price for the fix before any fix work.

Why the old value is still showing, and the fix

  1. 01

    The 12-hour minimum fetch interval

    “configs won't be fetched from the backend more than once in a 12 hour window, regardless of how many fetch calls are actually made.” Firebase, Get started with Remote Config (Android)

    The default minimum fetch interval is 12 hours. Until it has passed, calling fetch again does not get new values from Firebase. During development, lower the interval in a debug build so you can see changes right away, and keep the default in the release build.

    // Android (Kotlin): debug builds only
    val settings = remoteConfigSettings {
      minimumFetchIntervalInSeconds = if (BuildConfig.DEBUG) 0 else 43200 // 12 hours, the default
    }
    remoteConfig.setConfigSettingsAsync(settings)
  2. 02

    Fetched but never activated

    “To make fetched parameter values available to your app, call the activate() method.” Firebase, Get started with Remote Config (Android)

    fetch() downloads new values but the app keeps reading the old ones until activate() runs. Use fetchAndActivate() where an immediate change is fine, or activate on the next launch so the screen does not change under the user.

  3. 03

    Fetching too often, so the SDK throttles

    “If an app fetches too many times in a short time period, fetch calls are throttled and the SDK returns FirebaseRemoteConfigFetchThrottledException.” Firebase, Get started with Remote Config (Android)

    A fetch on every screen, a retry loop, or a fetch interval of 0 shipped to many users can trip the limit, and the SDK returns a throttled error instead of new values. Fetch once per launch and listen for changes in real time.

  4. 04

    No real-time listener for urgent changes

    “Real-time updates bypass the minimum fetch interval setting.” Firebase, Remote Config loading strategies

    If a change has to reach open apps quickly, such as switching off a broken feature, a real-time config update listener gets new values as soon as they are published, without waiting for the fetch interval. Activate the values in its callback.

Checked against the vendor’s docs on : Firebase docs: Get started with Remote Config (Android); Firebase docs: Get started with Remote Config (Apple platforms); Firebase docs: Remote Config loading strategies.

Rather hand it over?

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

“Very responsive, attentive to fixing bugs, and completed the project as needed! Thank you!”
A buyer in the United States, July 2022. Shopify on Fiverr
All 127 Fiverr reviews

Related: Firebase “No Firebase App [DEFAULT]” · Firebase App Check blocking requests · Firestore client is offline · FCM QUOTA_EXCEEDED

Questions

More on this error

Can I set the minimum fetch interval to 0 in production?

No. Firebase says a low interval is for development only, not for an app running in production, because many users fetching that often can hit the service limits. Use a real-time listener when you need fast updates.

Why does the app show the default value from the code?

Until values have been fetched and activated, the SDK returns the in-app defaults you set. Check that fetch succeeds and that activate() runs; a throttled or failed fetch leaves the defaults in place.

Does this work the same on iOS?

Yes. The same fetch interval, activate step and throttling apply on Apple platforms, where the throttled status is FIRRemoteConfigFetchStatusThrottled.

Can you fix it for me?

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.

A different error?

Describe it and get a written quote

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; Simon replies by email, usually within one business day.