Skip to content

Fix breadcrumbs field in error support - #7658

Merged
bendk merged 1 commit into
mozilla:mainfrom
bendk:bdk/push-uuvronukzzwx
Oct 14, 2026
Merged

bendk merged 1 commit into
mozilla:mainfrom
bendk:bdk/push-uuvronukzzwx

Conversation

@bendk

@bendk bendk commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

#7636 broke the app-services-error-reporter tracing event fields by renaming breadcrumbs to breadcrumb_string. This caused crashes on Android when errors were reported.

Rename it back to breadcrumbs and add a test so that this doesn't happen again.

Pull Request checklist

  • Breaking changes: This PR follows our breaking change policy
    • This PR follows the breaking change policy:
      • This PR has no breaking API changes, or
      • There are corresponding PRs for our consumer applications that resolve the breaking changes and have been approved
  • Quality: This PR builds and tests run cleanly
    • Note:
      • For changes that need extra cross-platform testing, consider adding [ci full] to the PR title.
      • If this pull request includes a breaking change, consider cutting a new release after merging.
  • Tests: This PR includes thorough tests or an explanation of why it does not
  • Changelog: This PR includes a changelog entry in CHANGELOG.md or an explanation of why it does not need one
    • Any breaking changes to Swift or Kotlin binding APIs are noted explicitly
  • Dependencies: This PR follows our dependency management guidelines
    • Any new dependencies are accompanied by a summary of the due diligence applied in selecting them.

mozilla#7636 broke the app-services-error-reporter tracing event fields by
renaming `breadcrumbs` to `breadcrumb_string`.  This caused crashes on
Android when errors were reported.

Rename it back to `breadcrumbs` and add a test so that this doesn't
happen again.
@bendk
bendk requested a review from mhammond October 14, 2026 19:17
@AaronMT

AaronMT commented Oct 14, 2026 •

Copy link
Copy Markdown

Stack where I saw this crash on auto-land (10/14) off a robo-crawl https://treeherder.mozilla.org/jobs?repo=autoland&revision=8c09abb17fd98be2828cefbcad9d0896087a7645&selectedTaskRun=fRJkrtcWQZKQ9iRjEoQ6dg.0

https://firefoxci.taskcluster-artifacts.net/a2Ek2JlETByh5kT0OLgR0Q/0/public/results/data_app_crash_0_org_mozilla_fenix_debug.txt

mozilla.appservices.fxaclient.InternalException: Callback interface failure: UnexpectedUniFFICallbackError(reason: "kotlinx.serialization.MissingFieldException: Field 'breadcrumbs' is required for type with serial name 'mozilla.appservices.errorsupport.TracingErrorFields', but it was missing at path: $
	at kotlinx.serialization.internal.JsonInternalDependenciesKt.missingFieldExceptionWithNewMessage(JsonInternalDependencies.kt:21)
	at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:95)
	at kotlinx.serialization.json.Json.decodeFromString(Json.kt:149)
	at mozilla.appservices.errorsupport.ErrorEventSink.onEvent(RustComponentsErrorTelemetry.kt:74)
	at mozilla.appservices.tracing.uniffiCallbackInterfaceEventSink$onEvent.callback$lambda$0(tracing.kt:1230)
	at mozilla.appservices.tracing.uniffiCallbackInterfaceEventSink$onEvent$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
	at mozilla.appservices.tracing.uniffiCallbackInterfaceEventSink$onEvent.callback(tracing.kt:1365)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback(CallbackReference.java:585)
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.callback(CallbackReference.java:613)
	at mozilla.appservices.fxaclient.UniffiLib.uniffi_fxa_client_fn_method_firefoxaccount_process_event(Native Method)
	at mozilla.appservices.fxaclient.FirefoxAccount.processEvent(fxa_client.kt:2332)
	at mozilla.appservices.fxaclient.FxaClient.processEvent(FxaClient.kt:96)
	at mozilla.components.service.fxa.FirefoxAccount.processEvent$service_firefox_accounts(FirefoxAccount.kt:96)
	at mozilla.components.service.fxa.manager.FxaAccountManager.processQueue(FxaAccountManager.kt:478)
	at mozilla.components.service.fxa.manager.FxaAccountManager.access$processQueue(FxaAccountManager.kt:98)
	at mozilla.components.service.fxa.manager.FxaAccountManager$beginAuthentication$2.invokeSuspend(FxaAccountManager.kt:376)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1154)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:652)
	at java.lang.Thread.run(Thread.java:1563)
")
	at mozilla.appservices.fxaclient.Fxa_clientKt.uniffiCheckCallStatus(fxa_client.kt:291)
	at mozilla.appservices.fxaclient.Fxa_clientKt.access$uniffiCheckCallStatus(fxa_client.kt:1)
	at mozilla.appservices.fxaclient.FirefoxAccount.processEvent(fxa_client.kt:5881)
	at mozilla.appservices.fxaclient.FxaClient.processEvent(FxaClient.kt:96)
	at mozilla.components.service.fxa.FirefoxAccount.processEvent$service_firefox_accounts(FirefoxAccount.kt:96)
	at mozilla.components.service.fxa.manager.FxaAccountManager.processQueue(FxaAccountManager.kt:478)
	at mozilla.components.service.fxa.manager.FxaAccountManager.access$processQueue(FxaAccountManager.kt:98)
	at mozilla.components.service.fxa.manager.FxaAccountManager$beginAuthentication$2.invokeSuspend(FxaAccountManager.kt:376)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1154)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:652)
	at java.lang.Thread.run(Thread.java:1563)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@6f19d62, Dispatchers.IO]

@bendk
bendk added this pull request to the merge queue Oct 14, 2026
Merged via the queue into mozilla:main with commit d086545 Oct 14, 2026
14 of 15 checks passed
@bendk
bendk deleted the bdk/push-uuvronukzzwx branch October 14, 2026 23:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants