Skip to content

[Sentry: APP-C3] HybridApp Android crash in CollectPersonalDetailsTaskViewHolder.updateModel — null cast to non-null String #98102

Description

@mountiny

Sentry

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

Impact (snapshot at filing)

  • Users (last 7d): 9
  • Users (total since first seen): 39
  • Events: 167
  • First seen: 2025-11-03
  • Last seen: now (ongoing)
  • Platform: Android (HybridApp, OldDot inbox)
  • App version(s): 9.4.50-3 and earlier
  • Mechanism: UncaughtExceptionHandler (fatal)
  • Seer actionability: high

Stack trace (top frames, first-party only)

yapl.android.navigation.views.inbox.CollectPersonalDetailsTaskViewHolder.updateModel(CollectPersonalDetailsTaskViewHolder.kt:114)
yapl.android.navigation.views.inbox.InboxTaskAdapter.onBindViewHolder(InboxTaskAdapter.java:182)
yapl.android.navigation.views.inbox.InboxTaskAdapter.onBindViewHolder(InboxTaskAdapter.java:31)
androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7953)
androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6742)

Suspected cause

CollectPersonalDetailsTaskViewHolder.updateModel casts a value to a non-null kotlin.String (a !! or an implicit platform-type cast) while binding the "collect personal details" inbox task. The value is null for some accounts, so the cast throws during RecyclerView layout and takes down the app.

The fix is to treat the field as nullable and render a sensible default, or to skip binding the row when the value is missing.

Reproduction

Unknown. It fires while the OldDot inbox list binds the collect-personal-details task, so it needs an account whose personal details task is missing the field that line 114 reads.

Related

  • Expensify/Expensify#83022 (closed) tracked the same crash at CollectPersonalDetailsTaskViewHolder.kt:107. The line moved to 114 and the crash is active again, so this is filed fresh rather than reopened.
  • Parent tracker: [Tracking] Top Sentry crashes monthly check-in #91302
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