I am sending the push notification to Android and Apple devices from ASP.NET Core Web API. But most of the time in between push failed and I am getting an error
The Push Notification System handle for the registration is invalid
I do not understand this.
I am using the NotificationHub nuget package in my project. Package version in 4.0.0.
I am showing my code here - please help me with this issue.
public async static Task SendPushNotificationToDevice(HubNotification hub notification) { if (hubNotification != null) { try { NotificationHubClient hub = NotificationHubClient.CreateClientFromConnectionString (ConfigurationManager.AppSettings["HubConnectionString"], ConfigurationManager.AppSettings["HubName"], true); ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; if (!string.IsNullOrEmpty(hubNotification.DeviceId) && !string.IsNullOrEmpty(hubNotification.DeviceType)) { // check if the already registered device var registationDescriptions = hub.GetRegistrationsByTagAsync(hubNotification.ToUserEmail, 100) .Result; foreach (var registrationDescription in registationDescriptions) { // We shouldn't have any extra registrations; delete if we do. hub.DeleteRegistrationAsync(registrationDescription); } // set message hubNotification.Message = string.Format(hubNotification.Message); if (!string.IsNullOrEmpty(hubNotification.Message)) { string jsonPayLoad = string.Empty; NotificationOutcome outcome; if (hubNotification.DeviceType.ToLower().Contains("android")) { var registeredNewDevice = hub.CreateGcmNativeRegistrationAsync( hubNotification.DeviceId.Replace("-", ""), new[]{hubNotification.ToUserEmail}) .Result; jsonPayLoad = "{ " data ": " + "{ " message ": " " + hubNotification.Message.Trim() + " "," + "" ListId ": " " + hubNotification.ListId + " "," + "" notificationType ": " " + hubNotification.NotificationType + " "," + "" IsOwner ": " " + hubNotification.IsOwner + " "," + "" ListName ": " " + hubNotification.ListName + " "," + "" ListType ": " " + hubNotification.ListType + " "," + "" badge ": " " + hubNotification.badge + " "," + "" inProgress ": " " + hubNotification.InProgress + " "," + "" headercolor ": " " + hubNotification.ListHeaderColor + " "," + "" titlecolor ": " " + hubNotification.ListHeaderTitleColor + " "," + "" sound ":" " + hubNotification.Sound + " "," + "" userProfileId ":" " + hubNotification.ToUserProfileId.ToString().Trim() + " "," + "" type ":" sendfriend "}}"; outcome = hub.SendGcmNativeNotificationAsync( jsonPayLoad, hubNotification.ToUserEmail) .Result; } else { hubNotification.Sound = hubNotification.Sound + ".caf"; var registeredNewDevice = hub.CreateAppleNativeRegistrationAsync( hubNotification.DeviceId.Replace("-", ""), new[]{hubNotification.ToUserEmail}) .Result; new[] { hubNotification.ToUserEmail }).Result; jsonPayLoad = "{ " aps ": " + "{ " alert ": " " + hubNotification.Message.Trim() + " "," + "" ListId ": " " + hubNotification.ListId + " "," + "" notificationType ": " " + hubNotification.NotificationType + " "," + "" IsOwner ": " " + hubNotification.IsOwner + " "," + "" ListName ": " " + hubNotification.ListName + " "," + "" ListType ": " " + hubNotification.ListType + " "," + "" badge ": " " + hubNotification.badge + " "," + "" InProgress ": " " + hubNotification.InProgress + " "," + "" headercolor ": " " + hubNotification.ListHeaderColor + " "," + "" titlecolor ": " " + hubNotification.ListHeaderTitleColor + " "," + "" sound ":" " + hubNotification.Sound + " "," + "" userProfileId ":" " + hubNotification.ToUserProfileId.ToString().Trim() + " "," + "" type ":" sendfriend "}}"; outcome = hub.SendAppleNativeNotificationAsync(jsonPayLoad, hubNotification.ToUserEmail) .Result; } // check the response if (outcome != null) { if (!((outcome.State == NotificationOutcomeState.Abandoned) || (outcome.State == NotificationOutcomeState.Unknown))) { // Message send successfully!! } } } //}); } } catch (Exception ex) { // LogError(ex.Message, "SendPushNotificationToDevice"); } } }