Skip to content

[Sentry: APP-JQQ] HybridApp iOS crash opening a universal link — app.keyChain null in TryNewDotManager.navigateToNewDot #98104

Description

@mountiny

Sentry

https://expensify.sentry.io/issues/APP-JQQ

Impact (snapshot at filing)

  • Users (last 7d): 5
  • Users (total since first seen): 5
  • Events: 18
  • First seen: 2026-08-02
  • Last seen: 2026-08-08
  • Platform: iOS (HybridApp)
  • App version(s): 9.4.49-3
  • Mechanism: nsexception (fatal, uncaught)
  • Culprit: -[YAPL logException:], YAPL function navigateToNewDot

Stack trace (top frames, first-party only)

navigateToNewDot@app/libs/TryNewDotManager.js:310:54
    app.keyChain.getPassword
@app/libs/DeepLinkManager.js:53:94

Native frames leading in:

-[ExpensifyAppDelegate application:continueUserActivity:restorationHandler:]
DeepLinkManager.handleUniversalLink
+[YAPLJS callFunction:args:]
-[JSValue callWithArguments:]
-[YAPL logException:]

Suspected cause

Opening a universal link routes through DeepLinkManager.handleUniversalLink, which calls TryNewDotManager.navigateToNewDot. That function reads app.keyChain.getPassword at line 310, and app.keyChain is null at that moment, so the app crashes on the deep link.

continueUserActivity can fire before the app finishes initialising, which would explain a null keychain: the deep link handler runs against a partly constructed app object. Worth confirming whether the crash correlates with a cold start from a link.

The fix is to guard app.keyChain in navigateToNewDot and defer the navigation until initialisation completes, rather than reading through a null.

Reproduction

Unknown. To approximate it: force-quit the app, then open an Expensify universal link so the app cold starts directly into continueUserActivity.

Related

Upwork Automation - Do Not Edit

Metadata

Metadata

Labels

BugSomething is broken. Auto assigns a BugZero manager.DailyKSv2ExternalAdded to denote the issue can be worked on by a contributor

Type

No type

Projects

Status
No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions