Common FCM HTTP v1 Errors and Fixes
Troubleshoot 401, 403, 404, and invalid-argument errors when sending Firebase Cloud Messaging notifications.
Last updated: May 2026

401 UNAUTHENTICATED
The OAuth access token is missing, expired, or invalid. Generate a new token with gcloud auth print-access-token. Confirm you are not using the device token in the Authorization header.

403 PERMISSION_DENIED
The authenticated identity lacks cloudmessaging.messages.create on the project. Add Firebase Cloud Messaging Admin role in IAM, or use an account with Owner/Editor on the Firebase project.
404 NOT_FOUND (invalid token or project)
The device token may be unregistered or belong to a different Firebase project. The Project ID in the URL must match the project that issued the token. Uninstall and reinstall the app to get a new token.
400 INVALID_ARGUMENT
- Data payload values must be strings, not numbers or objects
- Malformed JSON in custom data fields
- Empty or truncated device token
- Invalid image URL in notification payload
Notification not visible on device
If the app is in foreground, notification messages may not show a system banner unless you handle them in code. Data-only messages never show a tray notification by default. Check battery optimization and notification channel settings on Android.
Continue with our complete testing guide or open the FCM tester to send a notification now.
Ready to test? Open the FCM tester · Browse all guides