# Firebase: “java.io.IOException: FIS_AUTH_ERROR”

> java.io.IOException: FIS_AUTH_ERROR means Firebase Installations rejected the app. Check the API key restrictions, the API and google-services.json.

Canonical: https://app369.com/fix/firebase-fis-auth-error/
Last updated: 2026-11-08

Cloud Messaging, Remote Config, Analytics or In-App Messaging fails on Android with java.io.IOException: FIS_AUTH_ERROR (often logged as Failed to get FIS auth token). These SDKs depend on the Firebase Installations API. The request was rejected, almost always because of the API key: it is restricted in a way that blocks the Firebase Installations API or your app, or the app uses options from an old or different Firebase project.

**Short answer**

In Google Cloud console, under APIs & Services, Credentials, open the API key your app uses (it is in google-services.json). Add Firebase Installations API to its API restrictions, and check that its Android app restriction lists your package name with the right SHA-1, or set it to None. Make sure the Firebase Installations API is enabled, then download a fresh google-services.json and rebuild.

## **Why Firebase Installations rejects the app, and the fix**

1. 01 ### **API restrictions that leave out Firebase Installations**
  > “make sure that the API key(s) used in your application(s) are whitelisted for the Firebase Installations API” [**GitHub, API-Key restrictions (firebase-installations)**](https://github.com/firebase/firebase-android-sdk/blob/main/firebase-installations/API_KEY_RESTRICTIONS.md) A key restricted to a list of APIs needs Firebase Installations API on that list. Edit the key in Google Cloud console and add it. If the key shows Don’t restrict key, you may be looking at a different key than the app uses.
2. 02 ### **Android app restrictions that don’t match the build** An Android app restriction allows only listed package names and SHA-1 fingerprints. Debug, release and Play App Signing builds each have their own SHA-1; add each one, or set Application restrictions to None for Firebase keys. signingReport shows your local keys; copy the Play App Signing SHA-1 from Play Console (Test and release, App signing).```
cd android
./gradlew signingReport   # prints the SHA-1 for each build variant
```
3. 03 ### **Old or mismatched Firebase options**
  > “Errors during communication with the Firebase Installations API indicate invalid Firebase options or misconfigurations regarding the API key used in your application.” [**GitHub, Firebase Android SDK maintainer note**](https://github.com/firebase/firebase-android-sdk/issues/1286#issuecomment-620448506) An API key, project ID or app ID from another project, or a deleted key, fails the same way. Download google-services.json again from Project settings, or run flutterfire configure in a Flutter app, then rebuild.
4. 04 ### **The Firebase Installations API is disabled** If Firebase Installations API isn’t in the list when you edit the key, enable it for the project in the Google Cloud API library first. Then check its metrics page for successful requests after a fresh install of the app.

Checked against the vendor’s docs on November 8, 2026: [Firebase Android SDK: API-Key restrictions for Firebase Installations](https://github.com/firebase/firebase-android-sdk/blob/main/firebase-installations/API_KEY_RESTRICTIONS.md); [Firebase Android SDK issue #1286: maintainer mitigation steps](https://github.com/firebase/firebase-android-sdk/issues/1286#issuecomment-620448506); [Firebase: API keys for Firebase](https://firebase.google.com/docs/projects/api-keys).

## **Rather hand it over?**

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

- [from $450**App Fix Ticket**One reproducible bug in an existing mobile or web app, diagnosed and fixed.**See scope and start**](https://app369.com/fixed-price/flutter-firebase-bug-fix/)
- [from $450**AI-Built App Rescue**A Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.****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.**See scope and start**](https://app369.com/fixed-price/ai-app-rescue/)

Related: [**FCM “registration token is not registered”**](https://app369.com/fix/fcm-registration-token-not-registered/) · [**Firebase Auth “invalid API key” in production**](https://app369.com/fix/firebase-auth-invalid-api-key-production/) · [**Android google-services “version conflict”**](https://app369.com/fix/firebase-google-services-version-conflict/) · [**Firebase phone auth invalid-app-credential**](https://app369.com/fix/firebase-phone-auth-invalid-app-credential/)

Questions

## **More on this error**

<details>

<summary>**Why do only some users get it? **+</summary>

Per the Firebase Android SDK maintainers, mainly users who installed the app after an update to SDK versions that use Firebase Installations are affected, which is why only some devices fail.

</details>

<details>

<summary>**Is it safe to loosen the key restrictions? **+</summary>

Add only the Firebase Installations API. Firebase’s docs say keys restricted to Firebase services don’t need to be treated as secrets, with data protected by Security Rules and App Check. Never add the Gemini Developer API to a key that ships in your app.

</details>

<details>

<summary>**Can you fix it for me? **+</summary>

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.

</details>

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.

[**Describe your problem **→](https://app369.com/contact/) [**All fixes**](https://app369.com/fix/)