Background
The iOS Share Extension flow (take photo → Share → Expensify → tap workspace chat → expense submit) currently has no Sentry telemetry coverage. The delay between tapping a workspace chat and the expense submit screen appearing (observed to be ~3–4 seconds, long enough to feel broken) is a complete blind spot.
What's missing
The existing SPAN_OPEN_CREATE_EXPENSE / ManualOpenCreateExpense span is started only in startMoneyRequest() (src/libs/actions/IOU/MoneyRequest.ts), which is the in-app FAB / global-create path.
The Share Extension takes a completely separate navigation path:
ShareRootPage → SubmitTab → ShareTabParticipantsSelector → SHARE_SUBMIT_DETAILS
On tapping a workspace chat, ShareTabParticipantsSelector only calls clearMoneyRequest(...) and Navigation.navigate(...) — no startSpan. There are no startSpan calls anywhere under src/pages/Share and no Share-specific span constants in CONST.TELEMETRY.
What to instrument
Add a new Sentry span (or a tagged variant of an existing one) that covers:
- Start: user taps a workspace chat / participant in
ShareTabParticipantsSelector.onParticipantsAdded
- End: the first step of the expense submit flow mounts and is visible (
SHARE_SUBMIT_DETAILS screen renders)
This would capture the navigation + draft-init + first-render latency that is currently invisible.
Suggested span name
Something like ShareExtensionOpenSubmitFlow (consistent with the existing ManualOpenCreateExpense naming convention), added to CONST.TELEMETRY and documented in contributingGuides/OBSERVABILITY_METRICS.md.
References
Issue Owner
Current Issue Owner: @mallenexpensify
Background
The iOS Share Extension flow (take photo → Share → Expensify → tap workspace chat → expense submit) currently has no Sentry telemetry coverage. The delay between tapping a workspace chat and the expense submit screen appearing (observed to be ~3–4 seconds, long enough to feel broken) is a complete blind spot.
What's missing
The existing
SPAN_OPEN_CREATE_EXPENSE/ManualOpenCreateExpensespan is started only instartMoneyRequest()(src/libs/actions/IOU/MoneyRequest.ts), which is the in-app FAB / global-create path.The Share Extension takes a completely separate navigation path:
ShareRootPage→SubmitTab→ShareTabParticipantsSelector→SHARE_SUBMIT_DETAILSOn tapping a workspace chat,
ShareTabParticipantsSelectoronly callsclearMoneyRequest(...)andNavigation.navigate(...)— nostartSpan. There are nostartSpancalls anywhere undersrc/pages/Shareand no Share-specific span constants inCONST.TELEMETRY.What to instrument
Add a new Sentry span (or a tagged variant of an existing one) that covers:
ShareTabParticipantsSelector.onParticipantsAddedSHARE_SUBMIT_DETAILSscreen renders)This would capture the navigation + draft-init + first-render latency that is currently invisible.
Suggested span name
Something like
ShareExtensionOpenSubmitFlow(consistent with the existingManualOpenCreateExpensenaming convention), added toCONST.TELEMETRYand documented incontributingGuides/OBSERVABILITY_METRICS.md.References
contributingGuides/OBSERVABILITY_METRICS.mdShareTabParticipantsSelector:src/components/Share/ShareTabParticipantsSelector.tsxIssue Owner
Current Issue Owner: @mallenexpensify