Skip to content

Firebase Cloud Messaging errorFCM “SENDER_ID_MISMATCH” (403) and messaging/mismatched-credential

Your server sends a push and Firebase Cloud Messaging answers SENDER_ID_MISMATCH with HTTP 403, or the Admin SDK throws messaging/mismatched-credential. The device token was issued for one Firebase project and your server is sending with credentials from another. It can start after a move to a new project or a staging and production mix-up. Here is how to find which side is wrong, 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

The token and the sender belong to different Firebase projects. Compare the project ID in the app’s config file (google-services.json or GoogleService-Info.plist, or the web config) with the project of the service account your server uses, and make them match. If you moved projects, old tokens will not work: have each app fetch a new token and save it.

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 sender does not match, and the fix

  1. 01

    The server uses a service account from another project

    “Make sure the credential and registration token both belong to the same Firebase project.” Firebase, FCM error codes (messaging/mismatched-credential)

    The Admin SDK or HTTP v1 call is authenticated with a service account key, and that key belongs to one Firebase project. If it is not the project in the app’s config file, every send fails. Download a service account key from the same project as the app, or change the project ID your server sends to.

  2. 02

    Staging and production are crossed

    “The authenticated sender ID is different from the sender ID for the registration token.” Firebase, FCM ErrorCode (SENDER_ID_MISMATCH)

    With separate dev and prod Firebase projects, a test build with the dev config sends its token to the production server, or the other way round, and the sends fail with this error. Check which config file each build ships with and which credentials each server environment loads.

  3. 03

    The app moved to a new Firebase project

    “If you switch to a different sender, the existing registration tokens won't work.” Firebase, FCM ErrorCode (SENDER_ID_MISMATCH)

    After a migration the tokens saved in your database still point at the old project. They cannot be reused. Ship the build with the new config, have it fetch a fresh token on launch and save it, and remove the old tokens once users have updated.

  4. 04

    You meant to send from one project to another

    “In the target project, assign the Firebase Cloud Messaging API Admin role to the email address for the service account.” Firebase, Send messages with the Admin SDK

    If one backend project sends for several apps on purpose, the other projects have to allow it. Give the sender’s service account the Firebase Cloud Messaging API Admin role in each target project, then initialize the SDK with the target project’s ID.

Checked against the vendor’s docs on : Firebase docs: FCM HTTP v1 ErrorCode; Firebase docs: FCM error codes (Admin SDK); Firebase docs: Send messages with the Admin SDK.

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: FCM registration token not registered · FCM THIRD_PARTY_AUTH_ERROR · Firebase “No Firebase App [DEFAULT]” · Expo push notifications not working

Questions

More on this error

Should I delete tokens that fail with SENDER_ID_MISMATCH?

Only once you are sure your server uses the right project. The token itself may be fine; the mismatch is between it and your credentials. Fix the credentials first, then drop tokens that still fail because they belong to a project you no longer use.

Where do I see the sender ID?

In the Firebase console under Project settings, Cloud Messaging, it is shown as the sender ID. It matches the project number in the app’s config file. If the number in the app and the project behind your service account differ, that is the mismatch.

Does Expo show this error?

Expo reports a similar problem as MismatchSenderId, which it describes as an issue with your FCM push credentials. Check the service account key uploaded to EAS is from the same Firebase project as the app.

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.