Hi All
Thanks for all the feedback and for the sample code provided in the attachment ( greatly appreciated )
Implementing a retry mechanism should not be a problem, whoever the behavior is weird and I was looking for some logical explanation on why it happens in the first place.
Well here is the logical explanation.
Luckily the application has a GCM component. During testing I encountered some weird issues with the desktop application trying to send messages to the tablet. I was getting back a response in this format (id=0:1355132381549743%77148e76f9fd7; Not the exact same one in here but similar )
While searching the internet for answers, someone mentioned that the type of response that I was getting back from the GCM server is related to an error in one of the network layers.
By changing my router all the problems are gone.
If I put the old router back, I am able to regenerate the issues.
Now I can use the old router(D-LINK DIR-615) as a priceless test environment to simulate failure situation, so I do recommend it for testing