title: Android crashes when receiving push notification while app is dead - React-Native
body: <p>i recently implemented push notification for an app and everything work fine both on android and ios but the problem is the device receives push notification while app is on dead state the app crashes.</p>
  <p>i am using <a href="https://github.com/invertase/react-native-firebase" rel="nofollow noreferrer">react-native-firebase</a> and <a href="https://github.com/zo0r/react-native-push-notification" rel="nofollow noreferrer">react-native-push-notifications</a> i followed the exact instructions from the docs of these two libraries.</p>
  <p>verisons:</p>
  <pre><code>&quot;@react-native-community/push-notification-ios&quot;: &quot;^1.4.1&quot;,
      &quot;@react-native-firebase/app&quot;: &quot;^8.4.1&quot;,
      &quot;@react-native-firebase/messaging&quot;: &quot;^7.8.3&quot;,
  &quot;react-native-push-notification&quot;: &quot;^5.0.1&quot;,
  </code></pre>
  <p>EDIT: the app was originally in expo and i did expo eject (just in case this helps)</p>
  <p>here is the error message i got from <code>logcat</code> right after sending push notifications</p>
  <pre><code>09-09 08:18:41.867  1277  1299 D StorageManagerService: getExternalStorageMountMode : final mountMode=1, uid : 10412, packageName : com.lawyr
  09-09 08:18:41.867  1277  1299 I ApplicationPolicy: isApplicationExternalStorageWhitelisted:com.lawyr user:0
  09-09 08:18:41.867  1277  1299 D ActivityManager: package  com.lawyr, user - 0 is SDcard whitelisted
  09-09 08:18:41.867  1277  1299 I ApplicationPolicy: isApplicationExternalStorageBlacklisted:com.lawyr user:0
  09-09 08:18:41.868  1277  1299 I ApplicationPolicy: isApplicationExternalStorageBlacklisted:com.lawyr user:0
  09-09 08:18:41.891  1277  1301 I ActivityManager: Start proc 20576:com.lawyr/u0a412 for broadcast com.lawyr/io.invertase.firebase.messaging.ReactNativeFirebaseMessagingReceiver
  09-09 08:18:41.910 20576 20576 I com.lawyr: Late-enabling -Xcheck:jni
  09-09 08:18:41.982 20576 20576 I com.lawyr: report jit thread pid = 20581
  09-09 08:18:42.012  1277  3404 I ActivityManager: DSS on for com.lawyr and scale is 1.0
  09-09 08:18:43.466 20576 20576 W com.lawyr: Couldn't clamp region space as there are regions in use beyond growth limit.
  09-09 08:18:43.753 20576 20602 W com.lawyr: Unsupported class loader
  09-09 08:18:43.760 20576 20602 W com.lawyr: Skipping duplicate class check due to unsupported classloader
  09-09 08:18:43.992  1277  3385 W ActivityManager: wait for provider publish: waiters=1 callerApp=ProcessRecord{144d3e9d0 20576:com.lawyr/u0a412} cpr=ContentProviderRecord{215686e u0 com.google.android.gsf/.gservices.GservicesProvider}
  09-09 08:18:44.062 20576 20576 E AndroidRuntime: Process: com.lawyr, PID: 20576
  09-09 08:18:44.076  1277  3712 W ActivityManager: crash : com.lawyr,0
  09-09 08:18:44.086  2211  2211 W GCM     : broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE flg=0x10000000 pkg=com.lawyr (has extras) }
  09-09 08:18:44.147  1277  3404 I ActivityManager: Process com.lawyr (pid 20576) has died: fore SVC (160,1102)
  09-09 08:18:44.148  1277  3404 W ActivityManager: Scheduling restart of crashed service com.lawyr/io.invertase.firebase.messaging.ReactNativeFirebaseMessagingHeadlessService in 1000ms
  09-09 08:18:44.323 20634 20656 D AppErrorNotification: errorType : 24, process : com.lawyr , uid : 0
  09-09 08:18:45.150  1277  1299 D StorageManagerService: getExternalStorageMountMode : final mountMode=1, uid : 10412, packageName : com.lawyr
  09-09 08:18:45.151  1277  1299 I ApplicationPolicy: isApplicationExternalStorageWhitelisted:com.lawyr user:0
  09-09 08:18:45.151  1277  1299 D ActivityManager: package  com.lawyr, user - 0 is SDcard whitelisted
  09-09 08:18:45.151  1277  1299 I ApplicationPolicy: isApplicationExternalStorageBlacklisted:com.lawyr user:0
  09-09 08:18:45.151  1277  1299 I ApplicationPolicy: isApplicationExternalStorageBlacklisted:com.lawyr user:0
  09-09 08:18:45.168  1277  1301 I ActivityManager: Start proc 20678:com.lawyr/u0a412 for service com.lawyr/io.invertase.firebase.messaging.ReactNativeFirebaseMessagingHeadlessService
  09-09 08:18:45.185 20678 20678 I com.lawyr: Late-enabling -Xcheck:jni
  09-09 08:18:45.252 20678 20678 I com.lawyr: report jit thread pid = 20683
  09-09 08:18:45.283  1277  3404 I ActivityManager: DSS on for com.lawyr and scale is 1.0
  09-09 08:18:46.793 20678 20678 W com.lawyr: Couldn't clamp region space as there are regions in use beyond growth limit.
  09-09 08:18:47.104 20678 20702 W com.lawyr: Unsupported class loader
  09-09 08:18:47.107 20678 20702 W com.lawyr: Skipping duplicate class check due to unsupported classloader
  09-09 08:18:47.258 20634 20656 V FasUtils: There is com.lawyr [10412] in FAS table
  09-09 08:18:47.264 20678 20678 I com.lawyr: Waiting for a blocking GC ClassLinker
  09-09 08:18:47.342 20678 20678 I com.lawyr: WaitForGcToComplete blocked ClassLinker on ClassLinker for 77.385ms
  09-09 08:18:47.355 20634 20656 V AppErrorNotification: Filtered due to 1day concept : com.lawyr / uid : 10412
  09-09 08:18:47.428 20678 20678 E AndroidRuntime: Process: com.lawyr, PID: 20678
  09-09 08:18:47.440  1277  2239 W ActivityManager: crash : com.lawyr,0
  09-09 08:18:47.445  1277  1300 I ActivityManager: Showing crash dialog for package com.lawyr u0
  09-09 08:18:47.523   501   766 I SurfaceFlinger: id=14168 createSurf (2960x2960),2 flag=4, 4008ef5 Application Error: com.lawyr#0
  09-09 08:18:47.534  1277  1300 V WindowManager: Changing focus from Window{245b9a2 u0 com.sec.android.app.launcher/com.sec.android.app.launcher.activities.LauncherActivity} to Window{4008ef5 u0 Application Error: com.lawyr} Callers=com.android.server.wm.WindowManagerService.addWindow:1801 com.android.server.wm.Session.addToDisplayForTranslate:244 android.view.ViewRootImpl.setView:1006 android.view.WindowManagerGlobal.addView:381 
  09-09 08:18:47.542  1277  1313 D WindowManager: reportFocusChangedSerialized, focused=true, inTouchMode=true, win=Window{4008ef5 u0 Application Error: com.lawyr}
  09-09 08:18:47.551  1277  1300 V WindowManager: Relayout Window{4008ef5 u0 Application Error: com.lawyr}: viewVisibility=0 req=719x339 {(0,0)(wrapxwrap) gr=BOTTOM CENTER_VERTICAL sim={adjust=pan forwardNavigation} ty=SYSTEM_ALERT fmt=TRANSLUCENT wanim=0x10302ee surfaceInsets=Rect(4, 4 - 4, 4)
  09-09 08:18:47.556  1277  1300 V WindowManager: Resize reasons for w=Window{4008ef5 u0 Application Error: com.lawyr}:  contentInsetsChanged=false [0,0][0,0] visibleInsetsChanged=false [0,0][0,0] stableInsetsChanged=false [0,0][0,0] outsetsChanged=false [0,0][0,0] surfaceResized=false configChanged=true dragResizingChanged=false reportOrientationChanged=false displayCutoutChanged=false nextForceRelayoutToClient=false
  09-09 08:18:47.559   501   527 I SurfaceFlinger: id=14169 createSurf (727x347),1 flag=4, Application Error: com.lawyr#0
  09-09 08:18:47.560  1277  1300 D WindowManager: makeSurface duration=2 name=Application Error: com.lawyr
  09-09 08:18:47.573  1277  1300 D WindowManager: setSystemUiVisibility: vis= 0x8008, fullscreenVis= 0x0, dockedVis= 0x0, win=Window{4008ef5 u0 Application Error: com.lawyr}
  09-09 08:18:47.589 20634 20737 D AppErrorNotification: errorType : 24, process : com.lawyr , uid : 0
  09-09 08:18:47.622  1277  1300 D WindowManager: finishDrawingWindow: Window{4008ef5 u0 Application Error: com.lawyr} mDrawState=DRAW_PENDING
  09-09 08:18:47.626  1277  1548 I WindowManager: commitFinishDrawingLocked: mDrawState=READY_TO_SHOW Surface(name=Application Error: com.lawyr)/@0xcb6bd7
  09-09 08:18:47.627  1277  1548 I WindowManager: Cancelling animation restarting=true, leash=null, surface=Surface(name=4008ef5 Application Error: com.lawyr)/@0x238a7ad, parent=Surface(name=WindowToken{8f7f42c android.view.ViewRootImpl$W@f3b5fdf})/@0x2044ae2
  09-09 08:18:47.627  1277  1548 I WindowManager: Reparenting to leash, surface=Surface(name=4008ef5 Application Error: com.lawyr)/@0x238a7ad
  09-09 08:18:47.628   501   766 I SurfaceFlinger: id=14170 createSurf (2960x2960),2 flag=4, Surface(name=4008ef5 Application Error: com.lawyr)/@0x238a7ad - animation-leash#0
  09-09 08:18:47.630  1277  1548 D WindowManager: makeSurface duration=2 leash=Surface(name=Surface(name=4008ef5 Application Error: com.lawyr)/@0x238a7ad - animation-leash)/@0x770ee73
  09-09 08:18:47.630  1277  1548 D SurfaceControl: reparent is called, sc=Surface(name=4008ef5 Application Error: com.lawyr)/@0x238a7ad, newParentHandle=android.os.BinderProxy@3aec130, transaction=android.view.SurfaceControl$Transaction@b6511a9
  09-09 08:18:47.630  1277  1548 V WindowManager: performShowLocked: mDrawState=HAS_DRAWN in Window{4008ef5 u0 Application Error: com.lawyr}
  09-09 08:18:47.641   501   527 D Layer   : [4008ef5 Application Error: com.lawyr#0]::reparent oldParent:[WindowToken{8f7f42c android.view.ViewRootImpl$W@f3b5fdf}#0], newParent:[Surface(name=4008ef5 Application Error: com.lawyr)/@0x238a7ad - animation-leash#0]
  09-09 08:18:47.677   501   501 I SurfaceFlinger:      Device | 0xa86f2e80 | 0000 | RGBA_8888 |   4.0    0.0  724.0  347.0 |    0 1099  720 1446 | Application Error: com.lawyr#0
  09-09 08:18:47.695   501   501 I SurfaceFlinger:      Client | 0xa86f2e80 | 0000 | RGBA_8888 |   4.0    0.0  724.0  347.0 |    0 1092  720 1439 | Application Error: com.lawyr#0
  09-09 08:18:47.830 20678 20712 I FA      :   adb shell setprop debug.firebase.analytics.app com.lawyr
  09-09 08:18:47.867 20634 20737 V FasUtils: There is com.lawyr [10412] in FAS table
  09-09 08:18:47.913 20634 20737 V AppErrorNotification: Filtered due to 1day concept : com.lawyr / uid : 10412
  09-09 08:18:47.945  1277  1548 I WindowManager: reset, Reparenting to original parent, shouldDeferScheduleAnimation=false, destroyLeash=true, surface=Surface(name=4008ef5 Application Error: com.lawyr)/@0x238a7ad, parent=Surface(name=WindowToken{8f7f42c android.view.ViewRootImpl$W@f3b5fdf})/@0x2044ae2, parentNativeHandle=android.os.BinderProxy@56c4ce1, caller=com.android.server.wm.SurfaceAnimator.lambda$getFinishedCallback$0:97 com.android.server.wm.-$$Lambda$SurfaceAnimator$SIBia0mND666K8lMCPsoid8pUTI.run:4 com.android.server.wm.SurfaceAnimator.lambda$getFinishedCallback$1:104 com.android.server.wm.-$$Lambda$SurfaceAnimator$vdRZk66hQVbQCvVXEaQCT1kVmFc.onAnimationFinished:4 com.android.server.wm.LocalAnimationAdapter.lambda$startAnimation$0:74 
  09-09 08:18:47.945  1277  1548 D SurfaceControl: reparent is called, sc=Surface(name=4008ef5 Application Error: com.lawyr)/@0x238a7ad, newParentHandle=android.os.BinderProxy@56c4ce1, transaction=android.view.SurfaceControl$Transaction@b6511a9
  09-09 08:18:47.945  1277  1548 D SurfaceControl: destroy(transaction), animation-leash is destroyed, sc=Surface(name=Surface(name=4008ef5 Application Error: com.lawyr)/@0x238a7ad - animation-leash)/@0x770ee73, transaction=android.view.SurfaceControl$Transaction@b6511a9, caller=com.android.server.wm.SurfaceAnimator.reset:344 com.android.server.wm.SurfaceAnimator.lambda$getFinishedCallback$0:97 com.android.server.wm.-$$Lambda$SurfaceAnimator$SIBia0mND666K8lMCPsoid8pUTI.run:4 com.android.server.wm.SurfaceAnimator.lambda$getFinishedCallback$1:104 com.android.server.wm.-$$Lambda$SurfaceAnimator$vdRZk66hQVbQCvVXEaQCT1kVmFc.onAnimationFinished:4 com.android.server.wm.LocalAnimationAdapter.lambda$startAnimation$0:74 com.android.server.wm.-$$Lambda$LocalAnimationAdapter$X--EomqUvw4qy89IeeTFTH7aCMo.run:4 
  09-09 08:18:47.947  1277  1548 D WindowManager: prepareSurfaces, request to clear saved leash, surface=Surface(name=4008ef5 Application Error: com.lawyr)/@0x238a7ad
  09-09 08:18:47.948   501   766 D Layer   : [4008ef5 Application Error: com.lawyr#0]::reparent oldParent:[Surface(name=4008ef5 Application Error: com.lawyr)/@0x238a7ad - animation-leash#0], newParent:[WindowToken{8f7f42c android.view.ViewRootImpl$W@f3b5fdf}#0]
  09-09 08:18:47.948   501   766 I SurfaceFlinger: id=14170 Removed Surface(name=4008ef5 Application Error: com.lawyr)/@0x238a7ad - animation-leash#0 (1/44)
  09-09 08:18:47.950  1277  1548 D WindowManager: clearSavedLeashOnCommit, savedLeash=Surface(name=Surface(name=4008ef5 Application Error: com.lawyr)/@0x238a7ad - animation-leash)/@0x770ee73, caller=com.android.server.wm.WindowContainer.clearSavedLeashOnCommit:1156 com.android.server.wm.WindowContainer.clearSavedLeashOnCommit:1160 com.android.server.wm.WindowContainer.clearSavedLeashOnCommit:1160 com.android.server.wm.WindowContainer.clearSavedLeashOnCommit:1160 com.android.server.wm.RootWindowContainer.performSurfacePlacement:796 com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop:212 
  09-09 08:18:47.954   501   501 I Layer   : id=14170 onRemoved Surface(name=4008ef5 Application Error: com.lawyr)/@0x238a7ad - animation-leash#0
  </code></pre>
  <p>Manifest File</p>
  <pre><code>&lt;meta-data  android:name=&quot;com.dieam.reactnativepushnotification.notification_channel_name&quot;
                  android:value=&quot;Group Test&quot;/&gt;
          &lt;meta-data  android:name=&quot;com.dieam.reactnativepushnotification.notification_channel_description&quot;
                      android:value=&quot;Notify the status of on-going group tests and receive invitations for group tests&quot;/&gt;
  
          &lt;!-- Change the value to true to enable pop-up for in foreground (remote-only, for local use ignoreInForeground) --&gt;
          &lt;meta-data  android:name=&quot;com.dieam.reactnativepushnotification.notification_foreground&quot;
                      android:value=&quot;false&quot;/&gt;
          &lt;!-- Change the value to false if you don't want the creation of the default channel --&gt;
          &lt;meta-data  android:name=&quot;com.dieam.reactnativepushnotification.channel_create_default&quot;
                      android:value=&quot;true&quot;/&gt;
          &lt;!-- Change the resource name to your App's accent color - or any other color you want --&gt;
          &lt;meta-data  android:name=&quot;com.dieam.reactnativepushnotification.notification_color&quot;
                      android:resource=&quot;@color/white&quot;/&gt; &lt;!-- or @android:color/{name} to use a standard color --&gt;
  
          &lt;receiver android:name=&quot;com.dieam.reactnativepushnotification.modules.RNPushNotificationActions&quot; /&gt;
          &lt;receiver android:name=&quot;com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher&quot; /&gt;
          &lt;receiver android:name=&quot;com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver&quot;&gt;
              &lt;intent-filter&gt;
                  &lt;action android:name=&quot;android.intent.action.BOOT_COMPLETED&quot; /&gt;
              &lt;/intent-filter&gt;
          &lt;/receiver&gt;
  
          &lt;service
              android:name=&quot;com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService&quot;
              android:exported=&quot;false&quot; &gt;
              &lt;intent-filter&gt;
                  &lt;action android:name=&quot;com.google.firebase.MESSAGING_EVENT&quot; /&gt;
              &lt;/intent-filter&gt;
          &lt;/service&gt;
  </code></pre>
  <p>please tell me if i need to provide more code, Thanks.</p>