Skip to content

Android sign-in errorWhy does Google Sign-In fail on Android with error 10?

Sign-in works on your machine, then fails for users who installed from Google Play, or it fails everywhere with status 10 or DEVELOPER_ERROR. Google’s reference says status 10 means the app is misconfigured, so check what you registered (signing key fingerprints and client ID) before the code. Here’s what to register and where, or hand it over at a fixed price.

Short answer

Status 10 means Google says the app is misconfigured. If sign-in works in debug but fails from Google Play, register the app signing key fingerprint from Play Console, not just your upload key. Add the debug fingerprint too, pass the Web client ID as the server client ID, and if you use Firebase, download the updated google-services.json after adding fingerprints.

What Google doesn’t recognise, and the fix

  1. 01

    Read the error first: 10 is a setup problem

    “The application is misconfigured. This error is not recoverable and will be treated as fatal.” Google, CommonStatusCodes.DEVELOPER_ERROR

    In Google Play services, status code 10 is DEVELOPER_ERROR. Retrying or asking the user to try again won’t help. Check the log lines around it, then the registrations below.

  2. 02

    Works in debug, fails from Google Play: the Play signing key isn’t registered

    “Because Google signs the final APK, you must register the Google-held app signing key fingerprint with your API providers, not just your local upload key.” Google Play Console Help, Use Play App Signing

    With Play App Signing, Google signs the app users install with the app signing key it holds, not your upload key. In Play Console, open Protected with Play > Play Store protection > Manage Play app signing, copy the fingerprint your provider asks for from the App signing key section (Firebase’s field takes the SHA-1), and add it to your Firebase Android app or Google Cloud project.

  3. 03

    Fails in development: the debug fingerprint is missing

    “You should get both the release and debug certificate fingerprints.” Google, Authenticating your client

    Google says to get both the release and debug certificate fingerprints. If you don’t use Play App Signing, Gradle’s signingReport gives you the SHA-1 to register.

    cd android && ./gradlew signingReport
  4. 04

    The Android client ID is used instead of the Web client ID

    The sign-in request needs your server client ID, which is the Web application type OAuth client ID in your Google Cloud project, even in an Android app. Firebase’s sample says to pass your server’s client ID, not your Android client ID.

  5. 05

    The old google-services.json is still in the app

    With Firebase, the updated config file contains the OAuth client information required for Google sign-in. When the Firebase console prompts you, download the updated google-services.json, replace the old one in the Android app, and build again.

Checked against the vendor’s docs on : Google Play Console Help: Use Play App Signing; Google: Authenticating your client (SHA-1 fingerprints); Firebase docs: Authenticate with Google on Android; Google: CommonStatusCodes reference.

Rather hand it over?

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

Related: Google Sign-In on Android: moving to Credential Manager · Google OAuth redirect_uri_mismatch · Firebase auth/unauthorized-domain · Unexpected Gemini API charges on Firebase

Questions

More on this error

Why does sign-in work from Android Studio but not from the Play Store?

The app installed from Google Play is signed with the app signing key Google holds, not your upload or debug key. Google Play’s help says to register that key’s fingerprint with API providers such as OAuth.

SHA-1 or SHA-256?

Google’s client authentication guide asks for the SHA-1 of your signing certificate. Play Console shows both; copy the ones your API provider’s console asks for.

Do I need a new release after adding the fingerprint?

If the Firebase console prompts you to download an updated google-services.json, replace the old file in your project and build again.

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.

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; we reply by email, usually within one business day.