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

Seyed Vahid Hashemi picture Seyed Vahid Hashemi · Jul 3, 2012 · Viewed 135.2k times · Source

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?

Answer

azgolfer picture azgolfer · Jul 3, 2012

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)'