Data problem
StandardError
{ "error": { "code": 403, "message": "SenderId mismatch", "status": "PERMISSION_DENIED", "details": [ { "@type": "type.googleapis.com/google.firebase.fcm.v1.FcmError", "errorCode": "SENDER_ID_MISMATCH" } ] } }
In one line
FCM rejected an Android push with SENDER_ID_MISMATCH, which usually means a device token was issued for a different Firebase project than the one used to send it. The code only reports this to Bugsnag as a warning.
Checked against the code
What happened
- Android.send_notification got a 403 SENDER_ID_MISMATCH from FCM and reported it through Bugsnag.notify (a deliberate call, android.rb:29-31).
- It only fires for statuses other than 200 and 404, so it is a warning and does not fail the job.
- There were only 13 events in 57 days, so this affects a few devices and is not a systemic outage.
- The likely cause is a stale or wrong-project token: the token was registered under a different Firebase project, or the brand_name picks the wrong credentials.
What to do next
- Query
Shows the oldest Android devices, which are the likely stale tokens. Check whether the failing users are members or staff.
SELECT d.id, d.user_id, d.platform, d.updated_at, u.member FROM devices d JOIN users u ON u.id = d.user_id WHERE d.platform <> 'ios' ORDER BY d.updated_at ASC LIMIT 50;
- Check Check the Bugsnag events for which user, brand or device was involved. Then confirm the Firebase credentials for that brand match the project the app was built with.
Queries are shown, never run. Check them before using them on production.
Ask a follow-up
Continues the same session, so it still remembers the error and the code it read.
Analysed 1 h ago · claude-sonnet-5-5 · $0.04