Browse documentation

Help

Replay or symbols are not working

Diagnose missing browser recordings and unreadable JavaScript, Android, or iOS stack frames.

Replay does not appear

Confirm that:

  • the browser-only replay entry point is running;
  • the project-scoped replay key has replay:write;
  • input masking or application policy did not disable recording;
  • chunks are not failing with 401, 403, 413, or 429;
  • the selected project, environment, and time range are correct; and
  • the customer ID and session ID match the surrounding browser telemetry.

Use browser network tools to inspect the replay chunk request without exposing the key or captured payload.

Replay has no backend evidence

Check that browser request tracing is enabled, the API origin is allowed for header propagation, and the backend extracts traceparent and trusted baggage. The replay can exist even when cross-tier correlation is broken.

JavaScript frames are not symbolicated

The Issue Story keeps the raw bundled frames inspectable and reports the server-derived artifact state next to the stack:

  • JavaScript source map missing means the organisation has no uploaded JavaScript source-map artifact. Upload the map produced by this exact build.
  • JavaScript source map does not match means at least one source map exists, but none resolved the occurrence. The release, dist, or normalized minified filename may differ, the map may be invalid, or it may not contain the captured line and column.
  • No warning is shown only after at least one candidate frame resolves to an original source location. The raw bundled location remains visible beneath each resolved frame.

The warning lists the occurrence release, distribution/build, and normalized minified filenames. An empty distribution is a real exact-match key and differs from every named distribution. Use those values in sourcemap-upload.json, then upload it with an API key that has errors:write:

anectico symbols upload-sourcemap --file sourcemap-upload.json

Select the affected project in the CLI profile or pass --project; Anectico records that project and the authenticated user/API key in a durable body-free artifact audit entry.

The SDK release and dist must exactly match the source-map upload. Confirm that the uploaded filename names the minified bundle, not an original source file; Anectico normalizes URLs and build paths to the bundle basename. Also confirm that CI did not rewrite the bundle or map after upload. Uploading the exact key invalidates a prior missing-map lookup, so the next Issue read can use the new artifact without restarting a service.

Android frames are obfuscated

The Issue Story keeps the raw R8 frames visible and reports the artifact state next to the stack:

When R8 inlines several calls into one obfuscated line range, Anectico shows every recovered frame in mapping order (the innermost call followed by its callers). Each entry has an Original source line for the recovered call and a Raw frame line that repeats the captured obfuscated filename, line/column, and function. Retracing therefore does not discard the captured evidence, even when several recovered entries came from one raw frame.

  • ProGuard mapping missing means no mapping artifact is available yet.
  • ProGuard mapping does not match means an uploaded artifact has a different release, distribution/build, or contents than the installed application.
  • No warning is shown after the exact artifact retraces the occurrence.

Use the release and distribution/build shown in the warning. Upload the exact mapping.txt produced by that release build with an API key that has errors:write:

anectico symbols upload-proguard mapping.txt --release "$RELEASE" --dist "$DIST"

The keys are exact. An empty distribution is valid and is different from every named build; preserve it explicitly as --dist ''. Do not upload a mapping regenerated from the same source: R8 output can differ between builds.

iOS frames show addresses

The Issue Story keeps raw UUID/address frames visible and reports exact application-image coverage:

  • dSYM missing means at least one required in-app image UUID has no exact uploaded dSYM.
  • dSYM does not match means every required UUID exists, but none of the addresses resolved.
  • No warning is shown when every required UUID exists and at least one native frame resolves.

The warning lists the required UUIDs. Upload the dSYM bundle from the archive that produced the installed application:

anectico symbols upload-dsym MyApp.dSYM

You may instead pass the exact Mach-O file under MyApp.dSYM/Contents/Resources/DWARF/. Matching is by organisation plus Mach-O UUID only; release and distribution do not select a dSYM. The CLI locates the Xcode-named executable inside a bundle and sends a fat/universal binary intact so every architecture slice can be indexed. Rebuilding the same source can produce a different UUID, so use the original archive artifact.

Verify with a release build

Development stacks often bypass minification or obfuscation. Trigger a safe test error from the same kind of release build used in production and confirm its release, distribution, and readable frames inside the Issue.