Firebase Remote Config fetch throttled / fetch failed in CI
Firebase Remote Config refused a fetch because it happened too soon after the previous one (the minimum fetch interval), or the fetch could not reach the backend. Repeated fetches in a tight CI loop hit the throttle and the SDK keeps serving the last activated values.
What this error means
Remote Config logs a throttled fetch (RemoteConfigFetchThrottledException) or "Fetch failed", and getValue returns the last activated or in-app default rather than the latest server value.
FirebaseRemoteConfigException: Fetch was throttled. You can try fetching again
after ... (RemoteConfigFetchThrottledException)Common causes
Fetches exceed the minimum fetch interval
Calling fetch repeatedly within the minimum interval trips Remote Config throttling until the window elapses.
The fetch cannot reach the Remote Config backend
Blocked egress or a bad service account credential prevents the fetch from completing.
How to fix it
Set a suitable minimum fetch interval for CI
Configure minimumFetchIntervalMillis so test runs can fetch fresh values without hitting the throttle. Use a low value only in non-production CI.
await remoteConfig.setConfigSettings({
minimumFetchIntervalMillis: 0,
fetchTimeoutMillis: 60000,
});
await remoteConfig.fetchAndActivate();Set in-app defaults so a throttle is not fatal
Provide default values so getValue returns a sensible result even when a fetch is throttled or fails.
await remoteConfig.setDefaults({ enable_new_ui: false });How to prevent it
- Set minimumFetchIntervalMillis appropriately for CI, not production values.
- Always define in-app defaults so a throttled fetch is not fatal.
- Avoid tight fetch loops that trip Remote Config throttling.