Merge pull request #10679 from thingsboard/fix/firebase-senderid-mismatch
Improve mobile notifications stability
This commit is contained in:
		
						commit
						20d074e87f
					
				@ -105,9 +105,10 @@ public class MobileAppNotificationChannel implements NotificationChannel<User, M
 | 
			
		||||
                firebaseService.sendMessage(ctx.getTenantId(), credentials, token, subject, body, data, unreadCount);
 | 
			
		||||
            } catch (FirebaseMessagingException e) {
 | 
			
		||||
                MessagingErrorCode errorCode = e.getMessagingErrorCode();
 | 
			
		||||
                if (errorCode == MessagingErrorCode.UNREGISTERED || errorCode == MessagingErrorCode.INVALID_ARGUMENT) {
 | 
			
		||||
                if (errorCode == MessagingErrorCode.UNREGISTERED || errorCode == MessagingErrorCode.INVALID_ARGUMENT || errorCode == MessagingErrorCode.SENDER_ID_MISMATCH) {
 | 
			
		||||
                    validTokens.remove(token);
 | 
			
		||||
                    userService.removeMobileSession(recipient.getTenantId(), token);
 | 
			
		||||
                    log.debug("[{}][{}] Removed invalid FCM token due to {} {} ({})", recipient.getTenantId(), recipient.getId(), errorCode, e.getMessage(), token);
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
                throw new RuntimeException("Failed to send message via FCM: " + e.getMessage(), e);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user