App: [HOLD for payment 2022-10-18] [$500] πŸ’₯ Crash πŸ’₯ `.onSubmit`

Non-fatal Exception: io.invertase.firebase.crashlytics.JavaScriptError

Cannot read property β€˜id’ of undefined

address at index.android.bundle:1:3284609 .onSubmit

Number of Crashes: 18

Device Information

  • Platforms: iOS, Android
  • App Versions: 1.1.87-9, 1.2.5-2, 1.2.6.0, 1.2.11-2, 1.2.21-4, 1.2.25.0
  • Devices: Apple iPhone10,1 15.6.1, Google sdk_gphone64_arm64 12, samsung SM-G950F 9, Apple iPhone12,1 14.7.1, realme RMX2151 12, samsung SM-F926U 12

Stacktraces

iOS 1.2.25.0

anonymous (/private/var/containers/Bundle/Application/7F77EEF4-9C23-4928-BFF2-5C55F8B84FA3/New Expensify.app/main.jsbundle:613:1068:613)
h (/private/var/containers/Bundle/Application/7F77EEF4-9C23-4928-BFF2-5C55F8B84FA3/New Expensify.app/main.jsbundle:2:1708:2)
d (/private/var/containers/Bundle/Application/7F77EEF4-9C23-4928-BFF2-5C55F8B84FA3/New Expensify.app/main.jsbundle:2:1151:2)
i (/private/var/containers/Bundle/Application/7F77EEF4-9C23-4928-BFF2-5C55F8B84FA3/New Expensify.app/main.jsbundle:2:497:2)
anonymous (/private/var/containers/Bundle/Application/7F77EEF4-9C23-4928-BFF2-5C55F8B84FA3/New Expensify.app/main.jsbundle:6:62:6)
h (/private/var/containers/Bundle/Application/7F77EEF4-9C23-4928-BFF2-5C55F8B84FA3/New Expensify.app/main.jsbundle:2:1708:2)
d (/private/var/containers/Bundle/Application/7F77EEF4-9C23-4928-BFF2-5C55F8B84FA3/New Expensify.app/main.jsbundle:2:1081:2)
i (/private/var/containers/Bundle/Application/7F77EEF4-9C23-4928-BFF2-5C55F8B84FA3/New Expensify.app/main.jsbundle:2:497:2)
global (/private/var/containers/Bundle/Application/7F77EEF4-9C23-4928-BFF2-5C55F8B84FA3/New Expensify.app/main.jsbundle:2935:4:2935)
iOS 1.2.25.0

anonymous (/private/var/containers/Bundle/Application/308D5C7E-5BCF-4157-A86E-EB3DD78B1915/New Expensify.app/main.jsbundle:613:960:613)
h (/private/var/containers/Bundle/Application/308D5C7E-5BCF-4157-A86E-EB3DD78B1915/New Expensify.app/main.jsbundle:2:1708:2)
d (/private/var/containers/Bundle/Application/308D5C7E-5BCF-4157-A86E-EB3DD78B1915/New Expensify.app/main.jsbundle:2:1151:2)
i (/private/var/containers/Bundle/Application/308D5C7E-5BCF-4157-A86E-EB3DD78B1915/New Expensify.app/main.jsbundle:2:497:2)
anonymous (/private/var/containers/Bundle/Application/308D5C7E-5BCF-4157-A86E-EB3DD78B1915/New Expensify.app/main.jsbundle:6:62:6)
h (/private/var/containers/Bundle/Application/308D5C7E-5BCF-4157-A86E-EB3DD78B1915/New Expensify.app/main.jsbundle:2:1708:2)
d (/private/var/containers/Bundle/Application/308D5C7E-5BCF-4157-A86E-EB3DD78B1915/New Expensify.app/main.jsbundle:2:1081:2)
i (/private/var/containers/Bundle/Application/308D5C7E-5BCF-4157-A86E-EB3DD78B1915/New Expensify.app/main.jsbundle:2:497:2)
global (/private/var/containers/Bundle/Application/308D5C7E-5BCF-4157-A86E-EB3DD78B1915/New Expensify.app/main.jsbundle:2935:4:2935)
iOS 1.2.25.0

anonymous (/private/var/containers/Bundle/Application/2FADF995-4C52-4B4C-A913-B655B3DBB419/New Expensify.app/main.jsbundle:613:954:613)
apply
anonymous (/private/var/containers/Bundle/Application/2FADF995-4C52-4B4C-A913-B655B3DBB419/New Expensify.app/main.jsbundle:77:1247:77)
k (/private/var/containers/Bundle/Application/2FADF995-4C52-4B4C-A913-B655B3DBB419/New Expensify.app/main.jsbundle:77:498:77)
callTimers (/private/var/containers/Bundle/Application/2FADF995-4C52-4B4C-A913-B655B3DBB419/New Expensify.app/main.jsbundle:77:2647:77)
apply
value (/private/var/containers/Bundle/Application/2FADF995-4C52-4B4C-A913-B655B3DBB419/New Expensify.app/main.jsbundle:42:3798:42)
anonymous (/private/var/containers/Bundle/Application/2FADF995-4C52-4B4C-A913-B655B3DBB419/New Expensify.app/main.jsbundle:42:674:42)
value (/private/var/containers/Bundle/Application/2FADF995-4C52-4B4C-A913-B655B3DBB419/New Expensify.app/main.jsbundle:42:2504:42)
value (/private/var/containers/Bundle/Application/2FADF995-4C52-4B4C-A913-B655B3DBB419/New Expensify.app/main.jsbundle:42:646:42)
Android 1.2.21-4

.anonymous
.loadModuleImplementation
.guardedLoadModule
.metroRequire
.anonymous
.loadModuleImplementation
.guardedLoadModule
.metroRequire
.anonymous
.loadModuleImplementation
.guardedLoadModule
.metroRequire
.global
Android 1.2.11-2

.anonymous
._callTimer
.callTimers
.apply
.__callFunction
.anonymous
.__guard
.callFunctionReturnFlushedQueue
iOS 1.2.6.0

value (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:2746:3542:2746)
value (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:2608:2382:2608)
onPress (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:1207:5034:1207)
value (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:197:8496:197)
value (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:197:7752:197)
onResponderRelease (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:197:5671:197)
apply
o (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:51:151:51)
apply
h (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:51:294:51)
apply
g (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:51:348:51)
S (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:51:659:51)
Ne (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:51:14312:51)
forEach
Y (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:51:5326:51)
anonymous (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:51:14660:51)
Pe (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:51:99214:51)
Ce (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:51:14122:51)
Le (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:51:14499:51)
receiveTouches (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:51:15298:51)
apply
value (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:42:3798:42)
anonymous (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:42:674:42)
value (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:42:2504:42)
value (/private/var/containers/Bundle/Application/D8B43F50-D39B-4C1B-9FD6-6A59479F2C8E/New Expensify.app/main.jsbundle:42:646:42)
Android 1.2.5-2

.onSubmit
.submit
.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.87-9
.onSubmit
.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: fd1cdb4e916b7497e85f0e22ad937c6e, 29f5a4afa1f0968901244363906bf119, 0c9127e6df526e091a2c1234b473af9b, 687215b1c83475a4093a48662b02c853, de729788f9edff1f49f15d0662312d6c, 1636601bc8848e8aa95534fde449f212, f5e50079d41c608a71d1b76109acc53b, dd829ce4c65af7ab6e5eb0f902929500 Exception: Cannot read property 'id' of undefined

Upwork job link: https://www.upwork.com/jobs/~012d711651e4b80661

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 31 (17 by maintainers)

Most upvoted comments

Both paid.

@mananjadhav I had a feeling you’d do it without a nudge πŸ˜„

@michaelhaxhiu fyi, I’ve also applied to the link for C+

Also feel free to create the PR @hellohublot πŸ™‚

Proposal LGTM. Can I suggest one tweak, instead of the onyx.set can you reuse Policy.updateLastAccessedWorkspace. You might have to update it to accept null param too. This keeps the logic of modifying LAST_ACCESSED_WORKSPACE_POLICY_ID in one spot.

Proposal Updated For

https://github.com/Expensify/App/issues/10428#issuecomment-1264639252

Solutions:

Solution B: https://github.com/Expensify/App/blob/9ff60c3a220c9d05001007b2c0dfe0d954623edb/src/libs/actions/Policy.js#L111-L128

The user’s workspace has been deleted, but the lastAccessedWorkspacePolicyID is still exists in onyx, we should reset the lastAccessedWorkspacePolicyID

        let lastAccessedWorkspacePolicyID = null
        Onyx.connect({
            key: ONYXKEYS.LAST_ACCESSED_WORKSPACE_POLICY_ID,
            callback: value => lastAccessedWorkspacePolicyID = value,
        });
        function deleteWorkspace(policyID) {
            ...
            API.write('DeleteWorkspace', {policyID}, {optimisticData, successData, failureData});
            // reset the lastAccessedWorkspacePolicyID
            if (policyID === lastAccessedWorkspacePolicyID) {
                Onyx.set(ONYXKEYS.LAST_ACCESSED_WORKSPACE_POLICY_ID, null)
            }
        }

Waiting for your suggestions

We should likely hold at $500 based on how we are handling other jobs.

10 days overdue. I’m getting more depressed than Marvin.