Skip to content

docs(react-native): Upload CodePush bundles with source maps - #20162

Open
Jxxunnn wants to merge 1 commit into
getsentry:masterfrom
Jxxunnn:docs/rn-codepush-upload-bundle
Open

Jxxunnn wants to merge 1 commit into
getsentry:masterfrom
Jxxunnn:docs/rn-codepush-upload-bundle

Conversation

@Jxxunnn

@Jxxunnn Jxxunnn commented Oct 22, 2026

Copy link
Copy Markdown

DESCRIBE YOUR PR

The CodePush guide uploads only the source map directory, so the application bundle is not uploaded. This PR uploads the bundle and its matching source map together with --bundle and --bundle-sourcemap, so the Debug ID lookup can resolve both. Source maps stay outside the update directory, which keeps the fix from #15141 (getsentry/sentry-react-native#5148).

Why the bundle is needed:

  • Symbolicator requires a resolved minified-source entry to symbolicate a frame. A missing entry can prevent use of an otherwise available source map (symbolication.rs#L142-L162, lookup.rs#L593-L595).
  • When the artifact-bundle lookup finds a bundle matching the event's Debug ID, it returns that bundle without adding release-matched bundles (artifact_bundles.py#L316-L321, #L505-L535). A bundle that holds only the source map does not provide the minified-source entry for that Debug ID.
  • The native Xcode integration also includes both files and adds source map and Debug ID references (xcode.rs#L327-L334). sentry-cli has an integration test for --bundle with a Hermes bundle (trycmd).
Why a map-only upload can look like it works

Some events are still symbolicated. If a module processed earlier in caller-first order has no Debug ID, for example app:///InternalBytecode.js, its lookup can trigger the release-based path (lookup.rs#L1045-L1066) and may download an artifact bundle from the native build that contains ~/main.jsbundle. If that happens before the CodePush module is first fetched, the CodePush module finds a minified-source entry by path (lookup.rs#L1026-L1029) and still uses the CodePush source map by Debug ID. Whether this happens depends on the event's release and dist, the available artifacts, and the server's indexing state and candidate selection.

How to reproduce

  1. Create a Hermes CodePush release and upload source maps as described in the current guide.
  2. In the released update, capture an Error created synchronously in an XHR callback.
  3. Confirm that the event's bundle Debug ID matches the uploaded source map. Expected result with the current upload command: bundle frames remain unsymbolicated if no alternative artifact supplies the minified-source entry. The exact processing error depends on the project's scraping settings.

Verification

Verified CLI artifact preparation with sentry-cli 3.8.0 against a local stub server, using Hermes bytecode and a source map containing a Debug ID. The upload report lists the bundle and the source map with the same Debug ID, as in the integration test above. End-to-end symbolication with the updated command and JSC were not tested.

IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs to go live.
Select exactly one option. For deadlines, replace YYYY-MM-DD with the due date. You can update this information later by editing the PR description.

  • Urgent deadline (GA date, etc.): YYYY-MM-DD
  • Other deadline: YYYY-MM-DD
  • No deadline: Not urgent, can wait up to 1 week+

SLA

  • Teamwork makes the dream work, so please add a reviewer to your PRs.
  • Please give the docs team up to 1 week to review your PR unless you've supplied a deadline.

Thanks in advance for your help!

PRE-MERGE CHECKLIST

Make sure you've checked the following before merging your changes:

  • Checked Vercel preview for correctness, including links
  • PR was reviewed and approved by any necessary SMEs (subject matter experts)
  • PR was reviewed and approved by a member of the Sentry docs team

LEGAL BOILERPLATE

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

EXTRA RESOURCES

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 22, 2026

Copy link
Copy Markdown

@Jxxunnn is attempting to deploy a commit to the Sentry Team on Vercel.

A member of the Team first needs to authorize it.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-22T02:38:07.592354Z b785b38 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions Bot added the Priority: Normal Docs review has no urgent deadline label Oct 22, 2026
@codeowner-assignment
codeowner-assignment Bot requested review from a team October 22, 2026 02:32
@cursor

cursor Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

The plan checks page loads on the changed guide and sibling upload guides. It also checks client errors and snippet copies. An issue escalates when client errors appear on those pages or the sibling guides stop loading.

Services: sentry-docs.

Mention @change-monitor in a comment to update the plan.

Plan

What changed

Requests to /platforms/react-native/sourcemaps/uploading/codepush/ now show a command that uploads the bundle and its source map together. The old command uploaded only the source map directory. sentry-docs must deploy before this page is live. Deploy config maps the Vercel production project to this catalog id.

Risk

A bad MDX render can hide the upload command on this page. Readers may copy a broken command and leave CodePush frames unsymbolicated. Sibling React Native source map guides share the same page renderer.

Intended effect

This change is a documentation edit. Site telemetry cannot show the new upload flags. Mark intended_effect unknown from that gap. Page loads of the CodePush guide only show that the page still reaches readers. A 24 hour zero on that path is within the sparse band. Do not treat that zero as absent. Absent would mean the CodePush path stays at zero for 48 hours while sibling source map pages keep loading.

Signal Baseline Window Rule Source
CodePush guide page loads 1 load in 2026-10-21T02:33:23Z to 2026-10-22T02:33:23Z. 0 loads in 2026-10-20T02:33:23Z to 2026-10-21T02:33:23Z. 6 loads in 2026-10-15T02:33:23Z to 2026-10-22T02:33:23Z. 2026-10-20T02:33:23Z to 2026-10-22T02:33:23Z Hold in 0-2 loads per 24 hours. Rise is not required. Sentry org sentry project docs. docs.page.load with path:"/platforms/react-native/sourcemaps/uploading/codepush/"

Regression watch

A render fault on this page can also break sibling React Native source map pages. Watch those sibling loads against React Native page volume. Watch client errors on React Native transactions as the symptom class. Watch snippet copies as a share of that same volume. Watch React Native not-found counts.

Signal Baseline Window Rule Source
Error events on React Native transactions 0 events in 2026-10-21T02:33:23Z to 2026-10-22T02:33:23Z. 0 events in 2026-10-20T02:33:23Z to 2026-10-22T02:33:23Z. Rate 0 of 618 React Native page loads. 2026-10-20T02:33:23Z to 2026-10-22T02:33:23Z Hold at 0. Sentry org sentry project docs. Errors with transaction:*react-native*
React Native source map family page loads 31 loads of 618 React Native loads, 5.0 percent, in 2026-10-21T02:33:23Z to 2026-10-22T02:33:23Z. 18 of 538, 3.3 percent, in 2026-10-20T02:33:23Z to 2026-10-21T02:33:23Z. 2026-10-20T02:33:23Z to 2026-10-22T02:33:23Z Hold the share in 3.3-5.0 percent of React Native page loads. A fall below that band while React Native loads hold is a regression. Sentry org sentry project docs. docs.page.load with path:*platforms/react-native/sourcemaps* over path:*platforms/react-native*
Snippet copies on React Native pages 10 copies of 618 React Native loads, 1.6 percent, in 2026-10-21T02:33:23Z to 2026-10-22T02:33:23Z. 6 of 538, 1.1 percent, in 2026-10-20T02:33:23Z to 2026-10-21T02:33:23Z. 2026-10-20T02:33:23Z to 2026-10-22T02:33:23Z Hold the share in 1.1-1.6 percent of React Native page loads. Sentry org sentry project docs. docs.snippet_copy with page_path:"/platforms/react-native" over docs.page.load with path:*platforms/react-native*
React Native not-found counts 0 matching rows for requested_path:platforms/react-native in 2026-10-21T02:33:23Z to 2026-10-22T02:33:23Z. That path was absent from the top not-found paths in 2026-10-20T02:33:23Z to 2026-10-22T02:33:23Z. 2026-10-20T02:33:23Z to 2026-10-22T02:33:23Z Hold at 0. Sentry org sentry project docs. docs.page.not_found with requested_path:platforms/react-native

If error events rise, inspect client errors from code tabs on React Native pages.

Not observable

Site telemetry cannot show that readers now pass --bundle and --bundle-sourcemap. Customer artifact uploads and CodePush symbolication live in other projects. Sentry trace search for page latency and web vitals timed out twice. docs.snippet_copy keeps only the first three path segments, so CodePush-page copies are not separable. CodePush guide traffic is sparse at about one load per day, so a 24 hour zero on that path is not a regression by itself.

@coolguyzone coolguyzone left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@vercel

vercel Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
sentry-docs Ready Ready Preview Oct 26, 2026 9:59pm UTC
1 Skipped Deployment
Project Deployment Actions Updated
develop-docs Ignored Ignored Preview Oct 26, 2026 9:59pm UTC

Request Review

This branch was successfully deployed

1 active deployment
Preview – sentry-docs — b785b380 Deployed Oct 26, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Priority: Normal Docs review has no urgent deadline

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants