App: [HOLD #9402] [$500] Investigate: 💥 Crash 💥 `.getAttachmentName`

Firebase has reported a new crash that we need to fix, here are all the details we found:

Fatal Exception: io.invertase.firebase.crashlytics.JavaScriptError

Cannot convert null value to object

address at index.android.bundle:1:2767055 .getAttachmentName

Number of Crashes: 63

Device Information

  • Platforms: Android, iOS
  • App Versions: 1.1.97-7, 1.1.98-1, 1.2.0-8, 1.2.4-2, 1.2.4.2, 1.2.5-0, 1.2.5-2, 1.2.6.0, 1.2.8-0, 1.2.9.0, 1.2.10-1, 1.2.11.1, 1.2.11-4, 1.2.22.3, 1.2.24.0, 1.2.25-0, 1.2.28-2
  • Devices: samsung SM-M315F 12, Apple iPhone11,6 16.0.0, Apple iPhone11,6 15.5.0, Google Pixel 4a 13, samsung SM-A505U1 11, samsung SM-G770F 12, Apple iPhone14,5 16.0.0, Google sdk_gphone64_arm64 13, Apple iPhone13,4 15.6.1, samsung SM-G991B 12, Apple iPad7,5 15.5.0, realme RMX2001 11, Xiaomi Redmi Note 5 Pro 9, samsung SM-M315F 12

Stacktraces

Android 1.2.28-2

.getAttachmentName
.onPress
.onPress
.triggerPressAndUpdateSuccess
.onPress
._performTransitionSideEffects
._receiveSignal
.onResponderRelease
.apply
.invokeGuardedCallbackImpl
.apply
.invokeGuardedCallback
.apply
.invokeGuardedCallbackAndCatchFirstError
.executeDispatch
.executeDispatchesAndReleaseTopLevel
.forEach
.forEachAccumulated
.anonymous
.batchedUpdatesImpl
.batchedUpdates
._receiveRootNodeIDEvent
.receiveTouches
.apply
.__callFunction
.anonymous
.__guard
.callFunctionReturnFlushedQueue
Android 1.2.25-0

.getAttachmentName
.onPress
.onPress
.triggerPressAndUpdateSuccess
.onPress
._performTransitionSideEffects
._receiveSignal
.onResponderRelease
.apply
.invokeGuardedCallbackImpl
.apply
.invokeGuardedCallback
.apply
.invokeGuardedCallbackAndCatchFirstError
.executeDispatch
.executeDispatchesAndReleaseTopLevel
.forEach
.forEachAccumulated
.anonymous
.batchedUpdatesImpl
.batchedUpdates
._receiveRootNodeIDEvent
.receiveTouches
.apply
.__callFunction
.anonymous
.__guard
.callFunctionReturnFlushedQueue
iOS 1.2.24.0

anonymous (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:2527:489:2527)
onPress (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:2525:1587:2525)
onPress (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:2630:2354:2630)
value (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:2375:2034:2375)
onPress (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:1590:1947:1590)
value (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:197:8496:197)
value (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:197:7752:197)
onResponderRelease (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:197:5671:197)
apply
o (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:51:151:51)
apply
h (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:51:294:51)
apply
g (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:51:348:51)
S (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:51:659:51)
Ne (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:51:14312:51)
forEach
Y (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:51:5326:51)
anonymous (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:51:14660:51)
Pe (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:51:99214:51)
Ce (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:51:14122:51)
Le (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:51:14499:51)
receiveTouches (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:51:15298:51)
apply
value (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:42:3798:42)
anonymous (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:42:674:42)
value (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:42:2504:42)
value (/private/var/containers/Bundle/Application/0B131D53-17FA-4EAC-8C71-F9B65A5D0029/New Expensify.app/main.jsbundle:42:646:42)
iOS 1.2.22.3

anonymous (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:2529:489:2529)
onPress (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:2527:1587:2527)
onPress (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:2632:2354:2632)
value (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:2377:2034:2377)
onPress (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:1590:1947:1590)
value (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:197:8496:197)
value (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:197:7752:197)
onResponderRelease (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:197:5671:197)
apply
o (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:51:151:51)
apply
h (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:51:294:51)
apply
g (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:51:348:51)
S (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:51:659:51)
Ne (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:51:14312:51)
forEach
Y (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:51:5326:51)
anonymous (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:51:14660:51)
Pe (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:51:99214:51)
Ce (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:51:14122:51)
Le (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:51:14499:51)
receiveTouches (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:51:15298:51)
apply
value (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:42:3798:42)
anonymous (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:42:674:42)
value (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:42:2504:42)
value (/private/var/containers/Bundle/Application/194E7B4B-7457-4F28-A26E-63E471D8D629/New Expensify.app/main.jsbundle:42:646:42)
Android 1.2.11-4

.anonymous
.each
.getPersonalDetailsForLogins
.anonymous
.anonymous
.map
.sortBy
.getOrderedReportIDs
.render
.finishClassComponent
.updateClassComponent
.beginWork
.performUnitOfWork
.workLoopSync
.renderRootSync
.performSyncWorkOnRoot
.flushSyncCallbacks
.scheduleUpdateOnFiber
.enqueueSetState
.anonymous
.anonymous
.each
.keyChanged
.anonymous
.tryCallOne
.anonymous
.apply
.anonymous
._callTimer
._callReactNativeMicrotasksPass
.callReactNativeMicrotasks
.__callReactNativeMicrotasks
.anonymous
.__guard
.flushedQueue
.invokeCallbackAndReturnFlushedQueue
Android 1.2.4-2

.anonymous
.each
.getPersonalDetailsForLogins
.getOptionData
.OptionRowLHN
.renderWithHooks
.updateFunctionComponent
.beginWork
.performUnitOfWork
.workLoopSync
.renderRootSync
.performSyncWorkOnRoot
.flushSyncCallbacks
.scheduleUpdateOnFiber
.enqueueSetState
.anonymous
.anonymous
.each
.keyChanged
.anonymous
.tryCallOne
.anonymous
.apply
.anonymous
._callTimer
._callReactNativeMicrotasksPass
.callReactNativeMicrotasks
.__callReactNativeMicrotasks
.anonymous
.__guard
.flushedQueue
.invokeCallbackAndReturnFlushedQueue
Android 1.2.10-1

.anonymous
.each
.getPersonalDetailsForLogins
.anonymous
.anonymous
.map
.sortBy
.getOrderedReportIDs
.render
.finishClassComponent
.updateClassComponent
.beginWork
.performUnitOfWork
.workLoopSync
.renderRootSync
.performSyncWorkOnRoot
.flushSyncCallbacks
.scheduleUpdateOnFiber
.enqueueSetState
.anonymous
.anonymous
.each
.keyChanged
.anonymous
.tryCallOne
.anonymous
.apply
.anonymous
._callTimer
._callReactNativeMicrotasksPass
.callReactNativeMicrotasks
.__callReactNativeMicrotasks
.anonymous
.__guard
.flushedQueue
.invokeCallbackAndReturnFlushedQueue
iOS 1.2.11.1

anonymous (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:2583:489:2583)
onPress (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:2581:1587:2581)
onPress (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:2687:2351:2687)
value (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:2438:2034:2438)
onPress (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:1628:1773:1628)
value (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:197:8496:197)
value (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:197:7752:197)
onResponderRelease (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:197:5671:197)
apply
o (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:51:151:51)
apply
h (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:51:294:51)
apply
g (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:51:348:51)
S (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:51:659:51)
Ne (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:51:14312:51)
forEach
Y (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:51:5326:51)
anonymous (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:51:14660:51)
Pe (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:51:99214:51)
Ce (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:51:14122:51)
Le (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:51:14499:51)
receiveTouches (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:51:15298:51)
apply
value (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:42:3798:42)
anonymous (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:42:674:42)
value (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:42:2504:42)
value (/private/var/containers/Bundle/Application/69102C2D-CC3B-4FCF-B4A1-2A87417BD21C/New Expensify.app/main.jsbundle:42:646:42)
Android 1.2.10-1

.getAttachmentName
.onPress
.onPress
.triggerPressAndUpdateSuccess
.onPress
._performTransitionSideEffects
._receiveSignal
.onResponderRelease
.apply
.invokeGuardedCallbackImpl
.apply
.invokeGuardedCallback
.apply
.invokeGuardedCallbackAndCatchFirstError
.executeDispatch
.executeDispatchesAndReleaseTopLevel
.forEach
.forEachAccumulated
.anonymous
.batchedUpdatesImpl
.batchedUpdates
._receiveRootNodeIDEvent
.receiveTouches
.apply
.__callFunction
.anonymous
.__guard
.callFunctionReturnFlushedQueue
iOS 1.2.9.0

anonymous (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:1424:4439:1424)
Ar (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:686:9327:686)
L (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:1424:4417:1424)
anonymous (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:2765:5813:2765)
anonymous (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:686:17788:686)
xr (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:686:9523:686)
sortBy (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:686:17734:686)
getOrderedReportIDs (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:2765:5763:2765)
value (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:2760:2815:2760)
zl (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:51:58173:51)
Cl (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:51:57967:51)
Sa (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:51:96855:51)
vi (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:51:86900:51)
gi (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:51:86802:51)
hi (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:51:86567:51)
oi (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:51:83487:51)
pt (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:51:27333:51)
Za (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:51:79771:51)
enqueueSetState (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:51:32850:51)
anonymous (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:21:1115:21)
anonymous (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:685:3334:685)
Ar (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:686:9383:686)
F (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:685:2961:685)
anonymous (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:685:3604:685)
tryCallOne (/Users/distiller/react-native/sdks/hermes/build_iphoneos/lib/InternalBytecode/InternalBytecode.js:53:16:53)
anonymous (/Users/distiller/react-native/sdks/hermes/build_iphoneos/lib/InternalBytecode/InternalBytecode.js:139:27:139)
apply
anonymous (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:77:1662:77)
k (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:77:498:77)
w (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:77:888:77)
callReactNativeMicrotasks (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:77:3055:77)
value (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:42:2868:42)
anonymous (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:42:960:42)
value (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:42:2504:42)
value (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:42:919:42)
value (/private/var/containers/Bundle/Application/3D231759-F606-4459-A45A-6E8F411D7664/New Expensify.app/main.jsbundle:42:701:42)
Android 1.2.8-0

.anonymous
.anonymous
.anonymous
.baseForOwn
.transform
.changes
.diffObject
.logSetStateCall
.anonymous
.call
.processUpdateQueue
.updateClassComponent
.beginWork
.performUnitOfWork
.workLoopSync
.renderRootSync
.performSyncWorkOnRoot
.flushSyncCallbacks
.scheduleUpdateOnFiber
.enqueueSetState
.anonymous
.setStateFunction
.withSetStateTrace
._loop2
.keyChanged
.anonymous
.tryCallOne
.anonymous
.apply
.anonymous
._callTimer
._callReactNativeMicrotasksPass
.callReactNativeMicrotasks
.__callReactNativeMicrotasks
.anonymous
.__guard
.flushedQueue
.callFunctionReturnFlushedQueue
iOS 1.2.4.2

anonymous (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:177183:43:177183)
each (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:83303:19:83303)
getPersonalDetailsForLogins (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:177182:29:177182)
getOptionData (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:249146:73:249146)
OptionRowLHN (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:248789:57:248789)
renderWithHooks (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:6113:24:6113)
updateFunctionComponent (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:7114:32:7114)
beginWork (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:9117:215:9117)
performUnitOfWork (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:8717:27:8717)
workLoopSync (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:8706:24:8706)
renderRootSync (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:8688:21:8688)
performSyncWorkOnRoot (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:8410:36:8410)
flushSyncCallbacks (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:5205:32:5205)
scheduleUpdateOnFiber (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:8180:530:8180)
enqueueSetState (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:5585:38:5585)
anonymous (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:1519:33:1519)
anonymous (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:81780:45:81780)
each (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:83309:19:83309)
keyChanged (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:81751:29:81751)
anonymous (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:81866:24:81866)
tryCallOne (/Users/distiller/react-native/sdks/hermes/build_iphoneos/lib/InternalBytecode/InternalBytecode.js:53:16:53)
anonymous (/Users/distiller/react-native/sdks/hermes/build_iphoneos/lib/InternalBytecode/InternalBytecode.js:139:27:139)
apply
anonymous (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:11535:26:11535)
_callTimer (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:11447:17:11447)
_callReactNativeMicrotasksPass (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:11474:17:11474)
callReactNativeMicrotasks (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:11678:44:11678)
__callReactNativeMicrotasks (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:3217:46:3217)
anonymous (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:3092:45:3092)
__guard (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:3200:15:3200)
flushedQueue (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:3091:21:3091)
invokeCallbackAndReturnFlushedQueue (/Users/runner/Library/Developer/Xcode/DerivedData/NewExpensify-hgyiprpybmjyfbgfhddtlxzmjjny/Build/Intermediates.noindex/ArchiveIntermediates/NewExpensify/BuildProductsPath/Release-iphoneos/main.jsbundle:3084:33:3084)
Android 1.2.5-2

.anonymous
.each
.getPersonalDetailsForLogins
.getOptionData
.OptionRowLHN
.renderWithHooks
.updateFunctionComponent
.beginWork
.performUnitOfWork
.workLoopSync
.renderRootSync
.performSyncWorkOnRoot
.flushSyncCallbacks
.scheduleUpdateOnFiber
.enqueueSetState
.anonymous
.anonymous
.each
.keyChanged
.anonymous
.tryCallOne
.anonymous
.apply
.anonymous
._callTimer
._callReactNativeMicrotasksPass
.callReactNativeMicrotasks
.__callReactNativeMicrotasks
.anonymous
.__guard
.flushedQueue
.invokeCallbackAndReturnFlushedQueue
iOS 1.2.6.0

anonymous (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:2302:489:2302)
onPress (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:2296:1587:2296)
onPress (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:2293:2351:2293)
value (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:2295:2034:2295)
onPress (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:2259:1773:2259)
value (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:197:8496:197)
value (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:197:7752:197)
onResponderRelease (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:197:5671:197)
apply
o (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:51:151:51)
apply
h (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:51:294:51)
apply
g (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:51:348:51)
S (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:51:659:51)
Ne (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:51:14312:51)
forEach
Y (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:51:5326:51)
anonymous (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:51:14660:51)
Pe (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:51:99214:51)
Ce (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:51:14122:51)
Le (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:51:14499:51)
receiveTouches (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:51:15298:51)
apply
value (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:42:3798:42)
anonymous (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:42:674:42)
value (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:42:2504:42)
value (/private/var/containers/Bundle/Application/95F03D84-2A01-411A-9F0F-6A701318C120/New Expensify.app/main.jsbundle:42:646:42)
Android 1.2.5-0

.anonymous
.each
.getPersonalDetailsForLogins
.getOptionData
.OptionRowLHN
.renderWithHooks
.updateFunctionComponent
.beginWork
.performUnitOfWork
.workLoopSync
.renderRootSync
.performSyncWorkOnRoot
.flushSyncCallbacks
.scheduleUpdateOnFiber
.enqueueSetState
.anonymous
.anonymous
.each
.keyChanged
.anonymous
.tryCallOne
.anonymous
.apply
.anonymous
._callTimer
._callReactNativeMicrotasksPass
.callReactNativeMicrotasks
.__callReactNativeMicrotasks
.anonymous
.__guard
.flushedQueue
.invokeCallbackAndReturnFlushedQueue
Android 1.2.0-8

.getAttachmentName
.onPress
.onPress
.triggerPressAndUpdateSuccess
.onPress
._performTransitionSideEffects
._receiveSignal
.onResponderRelease
.apply
.invokeGuardedCallbackImpl
.apply
.invokeGuardedCallback
.apply
.invokeGuardedCallbackAndCatchFirstError
.executeDispatch
.executeDispatchesAndReleaseTopLevel
.forEach
.forEachAccumulated
.anonymous
.batchedUpdatesImpl
.batchedUpdates
._receiveRootNodeIDEvent
.receiveTouches
.apply
.__callFunction
.anonymous
.__guard
.callFunctionReturnFlushedQueue
Android 1.1.98-1

.getAttachmentName
.onPress
.onPress
.triggerPressAndUpdateSuccess
.onPress
._performTransitionSideEffects
._receiveSignal
.onResponderRelease
.apply
.invokeGuardedCallbackImpl
.apply
.invokeGuardedCallback
.apply
.invokeGuardedCallbackAndCatchFirstError
.executeDispatch
.executeDispatchesAndReleaseTopLevel
.forEach
.forEachAccumulated
.anonymous
.batchedUpdatesImpl
.batchedUpdates
._receiveRootNodeIDEvent
.receiveTouches
.apply
.__callFunction
.anonymous
.__guard
.callFunctionReturnFlushedQueue
Android 1.1.97-7
.getAttachmentName
.onPress
.onPress
.triggerPressAndUpdateSuccess
.onPress
._performTransitionSideEffects
._receiveSignal
.onResponderRelease
.apply
.invokeGuardedCallbackImpl
.apply
.invokeGuardedCallback
.apply
.invokeGuardedCallbackAndCatchFirstError
.executeDispatch
.executeDispatchesAndReleaseTopLevel
.forEach
.forEachAccumulated
.anonymous
.batchedUpdatesImpl
.batchedUpdates
._receiveRootNodeIDEvent
.receiveTouches
.apply
.__callFunction
.anonymous
.__guard
.callFunctionReturnFlushedQueue

Internal Firebase Info

💥 DO NOT EDIT THIS SECTION 💥

Crash IDs: b50b77d9ed87f261c3e9695eaaa8a43e, 15075f001719de6745819ac5a043c4a3, d22c26c60606bfadb813cdf7ceec77be, 00539ebde46ff143a37521864ed6e93a, df4506270482969a8c5e29a0f9a28bbb, c202d2339fc6dec1e7c4a56c32f610fe, 93b55f499e1f29613a3ec91e3221e9ff, 9c8bc7c147cd12ad1e5bafeb4747f722, b804efc5d22692dddfa13fbe8577b798, 5947ad726cb8d617b3aadf127753b6c8, a43611ff421cfc636ac62c420c92e9e5, 436ca7be2d5c424ef1949b938d6ef32e, d451636f28279d74d9f6edfdf92a4fd7, 072dfe5cd9f0ab8d18691dd501ef002b, 14228988833cfdfb2e16d7978d3be911, d4e6ba6ad50acb6d05c232cca95652e7, 8aed8eb4ef9da504c6fbfe191e2906cc, 2a9bc68b24671de6ba242c351dcfb42b Exception: Cannot convert null value to object

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 44 (23 by maintainers)

Most upvoted comments

I am closing this issue because we are no longer focusing on Firebase reported crashes. If this crash is reproducible, please report it in #expensify-bugs in Slack.

Tbh i don’t know. Uploading Attachment… is a placeholder that we have while the image is downloading. From the issue https://github.com/Expensify/App/issues/9402 its very possible that the same could happen with the image loader.

I think the question is if you can download a preview of an attachment upload before it’s uploaded, so basically just a local copy? Spelling it out like that seems like you wouldn’t be able to do that, and therefore the problem will still exist when we implement the image preview.

With regards to the proposed solution though, I’m wary of disabling the comment action menu on the preview. I think you should be able to optimistically delete (effectively cancel) a pending attachment upload, and to do that you would need to be able access that menu. So if we’re going to move forward here, I think hiding Download from the menu when it’s in the pending state is a better solution.

Cool, sounds good to me.

Proposal

Reproducible Steps And Video:

  1. click the ‘Add attachment’
  2. click the ‘Choose from gallery’ and upload
  3. longPress the ‘Uploading Attachment’ (you can turn off or limit your network to click the button)
  4. click ‘Download’

https://user-images.githubusercontent.com/20135674/193510522-e4266ef2-c2bf-4e5b-a136-e04b1805c3f0.mp4

Solution And Video:

https://user-images.githubusercontent.com/20135674/193510523-717310e7-caae-43fc-9728-104742b778d0.mp4

Solution: https://github.com/Expensify/App/blob/9ff60c3a220c9d05001007b2c0dfe0d954623edb/src/pages/home/report/ReportActionItem.js#L105-L122

we can’t open the report menu while an attachment is still uploading, and the attachmentInfo is not a null value when the attachment is still uploading, so we block the report menu when the attachmentInfo is not a null value

        showPopover(event) {
            // Block menu on the message being Edited
            if (this.props.draftMessage) {
                return;
            }
            // Block menu on the message's attachment is still uploading
            if (this.props.action.attachmentInfo) {
                return;
            }
            ...
        }

Waiting for your suggestions

Maybe this stack trace helps?

.getAttachmentName (address at index.android.bundle:1:2767055)
.onPress (address at index.android.bundle:1:2763808)
.onPress (address at index.android.bundle:1:2759457)
.triggerPressAndUpdateSuccess (address at index.android.bundle:1:2761433)
.onPress (address at index.android.bundle:1:2668225)
._performTransitionSideEffects (address at index.android.bundle:1:324697)
._receiveSignal (address at index.android.bundle:1:324285)
.onResponderRelease (address at index.android.bundle:1:323099)
.apply ((native):0:0)
.invokeGuardedCallbackImpl (address at index.android.bundle:1:142234)
.apply ((native):0:0)
.invokeGuardedCallback (address at index.android.bundle:1:142291)
.apply ((native):0:0)
.invokeGuardedCallbackAndCatchFirstError (address at index.android.bundle:1:142323)
.executeDispatch (address at index.android.bundle:1:142455)
.executeDispatchesAndReleaseTopLevel (address at index.android.bundle:1:146720)
.forEach ((native):0:0)
.forEachAccumulated (address at index.android.bundle:1:143953)
.anonymous (address at index.android.bundle:1:147072)
.batchedUpdatesImpl (address at index.android.bundle:1:204287)
.batchedUpdates (address at index.android.bundle:1:146640)
._receiveRootNodeIDEvent (address at index.android.bundle:1:146913)
.receiveTouches (address at index.android.bundle:1:198870)
.apply ((native):0:0)
.__callFunction (address at index.android.bundle:1:128709)
.anonymous (address at index.android.bundle:1:127200)
.__guard (address at index.android.bundle:1:128154)
.callFunctionReturnFlushedQueue (address at index.android.bundle:1:127158)