Why do I get "MismatchSenderId" from GCM server side?

android, google-cloud-messaging, push-notification

Solution

Did your server use the new registration ID returned by the GCM server to your app? I had this problem, if trying to send a message to registration IDs that are given out by the old C2DM server.

And also double check the Sender ID and API_KEY, they must match or else you will get that MismatchSenderId error. In the Google API Console, look at the URL of your project:

https://code.google.com/apis/console/#project:xxxxxxxxxxx

The xxxxxxxxx is the project ID, which is the sender ID.

And make sure the API Key belongs to 'Key for server apps (with IP locking)'

Problem

I'm trying to create a push service for my Android app, and I follow Google GCM's documentation and example for this matter: I can register/unregister my Android app. From my server side, I can see that I have one subscription registered, but when I try to send a message from server to my Android app I always get following error: Error sending message to device #0: MismatchSenderId For my Android app, I use SENDER_ID = 200000000001. And for my server side as Google says I use API_KEY = AIzxxxxxxxxxxxxxxxxXxxXxxXxxxXXXXXxxxxs I followed this document: http://developer.android.com/guide/google/gcm/demo.html I've enabled GCM in my Google API panel too, yet I'll get that annoying error message. How can I fix this problem?

Original source