@@ -188,19 +188,30 @@ class FCM extends Splitter {
188188 sentSuccessfully . push ( { p : allPushIds [ i ] , r : messageId } ) ;
189189 }
190190 else {
191- const sdkError = FCM_SDK_ERRORS [ error . code ] ;
192- // check if the sdk error is mapped to an internal error.
193- // set to default if its not.
194- let internalErrorCode = sdkError ?. mapTo ?? ERROR . DATA_PROVIDER ;
195- let internalErrorMessage = sdkError ?. message ;
196- if ( ! internalErrorMessage ) {
197- if ( error . code && error . message ) {
198- internalErrorMessage = "[" + error . code + "] " + error . message ;
191+ let internalErrorCode = ERROR . DATA_PROVIDER ;
192+ let internalErrorMessage = "Invalid error message" ;
193+ let mapped = false ;
194+
195+ // valid error object (it could be undefined based on its type definition)
196+ if ( error && error . code && error . message ) {
197+ // check if the sdk error is mapped to an internal error.
198+ if ( error . code in FCM_SDK_ERRORS ) {
199+ const sdkError = FCM_SDK_ERRORS [ error . code ] ;
200+ if ( sdkError . mapTo ) {
201+ internalErrorCode = sdkError . mapTo ;
202+ }
203+ internalErrorMessage = sdkError . libraryKey + ": " + sdkError . message ;
204+ mapped = true ;
199205 }
200206 else {
201- internalErrorMessage = "Invalid error message" ;
207+ internalErrorMessage = "[" + error . code + "] " + error . message ;
202208 }
203209 }
210+
211+ if ( ! mapped ) {
212+ this . log . e ( "Unrecognized FCM error" , result . responses [ i ] ) ;
213+ }
214+
204215 errorObject ( internalErrorCode , internalErrorMessage )
205216 . addAffected ( pushes [ i ] . _id , one ) ;
206217 }
0 commit comments