I worked with PushSharp (latest version of lib v2.0.4), and all my messages were either triggered by NotificationFailed() or NotificationSent() . But this does not guarantee that messages reach the end user (device). Apple or Google send an ACK that their servers received a notification successfully (or not) from my push service. Then it is in their hands to send to the end device.
Also, how do you close your push services? If you call StopAllServices(true) , the service will wait until all ACKS are received before shutting down. If called as StopAllServices(false) , it is disabled without waiting for acks to appear, and therefore the NotificationFailed() or NotificationSent() events will not be fired.
Hope this helps.
source share