Can there be a situation when the message does not reach the client?
Gamesparks will try to send the message until it reaches a client?
Yes there are situations when a message does not reach a client, like for example if a client has been incorrectly disconnected, e.g dirty disconnect, it can take up to 30 mins for the socket to close in this case. This can depend on the message and where / how you're sending it. If it's from the client it's possible to make the message durable so that when a connection is reestablished the messages in between have been queued and will then be sent. If it's from cloud code it is possible to send the message as a push notification so even if the player is offline they can receive the message once they get connected again.
Hope this helps
I am having some situations with GameSparks messages that they don't reach destination, is there any reason why the socket connection between GameSparks and the device is closed?
This only happens sometimes, for instance if the device has a poor connection of internet does this usually happens?