Hi,
You would rarely need unregister this is from the android doc:
You should rarely (if ever) need to call this method. Not only is it expensive in terms of resources, but it invalidates your registration ID, which should never change unnecessarily. A better approach is to simply have your server stop sending messages. Only use unregister if you want your application to stop using GCM permanently, or you have a compelling reason to recycle your registration ID
The error you are getting is wrong though, seems that that it doesn't have a deviceId anymore I'll investigate