iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
If a React Native Hermes error points to index.android.bundle:1 or shows a minified frame such as p@1:132161, it usually does not mean the original bug is on source line 1. It means the error report has not been translated back to your source code with the right source map. The fix is to use the final map composed for the exact shipped JavaScript bundle, match it to the frame’s platform and bundle URL, and give each materially different JavaScript bundle its own release identity.
What does “line 1” mean in a Hermes stack trace?
In a release build, Hermes can report minified function names and positions in compiled bytecode rather than readable source locations. React Native’s example includes a frame like p@1:132161. A symbolicator uses source maps to translate that representation into the original file, line, and function. React Native describes the process and its metro-symbolicate workflow in its release-build debugging documentation.
When that translation does not happen, an error-monitoring service may display a generated bundle reference such as index.android.bundle:1 or main.jsbundle:1. The frame is pointing at the generated artifact, not necessarily at line 1 of a file you wrote. The useful question is therefore not “Why did Hermes report line 1?” but “Can the symbolicator find and apply the final map for this exact bundle?”
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallThree failures account for many unresolved frames: the uploaded map is an intermediate rather than the final composed map; the release identity points to a different JavaScript bundle; or the bundle URL in the production event does not match the artifact that was uploaded. A correct map with the wrong identity or URL can be just as unusable as no map.
Popular on Amazon
- 【90 Degree Full Function USB C Adapter】Supports the latest USB4 standard for up to 40Gbps of bandwidth, 8K video support, and up to 240W Fast charging; Support USB PD 3.1 Extended Power Range (EPR) including 140W, 180W and 240W. Your productivity is easily doubled. *Warm Tip: For the best fit, please make sure the USB-C port is fully exposed; thick or bulky cases may affect compatibility.
- 【Reliable Quality】Made from high-quality, scratch-resistant aluminum alloy, delicate metal frame. get excellent wear resistance and heat dissipation. Non-Slip Design for easier insertion and removal.
- 【Small and portable】Ultra thin size, ultra compact design, a petite physique that matches the minimalist design of your modern laptops. Coming with a slim figure that won't block the port next to the one it's plugged into.
- 【Compatibility】Widely work with most usb c, thunderbolt 4/3 devices. Compatibilit for ROG Ally, Steam Deck, Switch, MacBook Pro, Quest 3 VR headset, Surface Book 2, iPhone 18/17/16/15, Samsung Galaxy S23/S22/S21, Note 20/10, Google Pixel, ChromeBook, etc.
- 【Excellence Customer Support】If you experience any issues or cable failure, simply reach out to our dedicated customer service team. We provide a prompt response within 18 hours, providing you with the necessary technical support to resolve any concerns.
How does the Hermes source-map pipeline work?
The final map has to bridge the transformations from your source code to Hermes bytecode. Keeping only one intermediate map may leave the symbolicator unable to translate a bytecode position all the way back to the original file and line.
- Metro bundles the JavaScript. It emits generated JavaScript and a packager source map that relates generated positions to source locations.
- Hermes compiles the JavaScript. The compiled bytecode has its own positions and mapping information.
- The mappings are composed. The final source map connects the Hermes positions through the generated JavaScript to the original sources.
- The artifacts stay associated. Keep the exact bundle, its final composed map, platform, and release identity together.
- The monitoring service receives the matching artifacts. Upload them before events from that release need symbolication, where the service’s workflow allows it.
For Hermes, do not assume that a Metro packager map alone or a Hermes bytecode map alone is the complete map. The troubleshooting guidance in the line-1 article calls out composing the maps and retaining the resulting file; Flare also warns that an intermediate map can be removed before upload in its source-map troubleshooting guidance. The required files and script paths can vary with the React Native or Expo version, so use the composition procedure for the version and build pipeline that produced the artifact rather than copying a path from an unrelated setup.
How do I symbolicate a React Native Hermes stack trace?
Start with an actual production event and the artifacts from the affected build or OTA export. React Native states that source maps are required to symbolicate stack traces and cautions that the map must correspond to the exact commit of the crashing app. Even a small source change can shift generated positions substantially, so a map from a nearby build is not a reliable substitute.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errors- Capture the complete frame. Keep the platform, bundle or source URL, and the surrounding stack trace. Do not rely only on the short filename shown in a dashboard.
- Identify the JavaScript bundle that ran. Determine whether the event came from an embedded Android bundle, an embedded iOS bundle, or an OTA-delivered JavaScript bundle.
- Find that build’s final composed map. Confirm it was generated from the exact bundle and source revision involved in the event, and that it includes the Metro-to-Hermes mapping.
- Check the artifact identity. Compare the production frame’s bundle URL and platform with the uploaded artifact. Check that the release and any distribution identity identify this JavaScript bundle, not merely the native app version.
- Run local symbolication. Use
metro-symbolicatewith the release map and captured stack trace. React Native’s Android example is:
npx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map < stacktrace.txt
Use the map produced by the affected release build; a similarly named map from another build is not equivalent. If local symbolication still returns generated positions, first verify the map composition and exact bundle match, then check the frame URL and platform. If local symbolication works but the service does not, investigate the upload, release identity, and artifact selection in that service.
Also popular on Amazon
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
What differs between Android, iOS, and Expo or OTA builds?
The underlying need is the same on each platform: preserve the final map from the exact JavaScript artifact and make its identity unambiguous. The documented build settings and bundle names are not identical, however.
Android release builds
React Native’s documented Android release workflow enables source maps by default. If explicit Hermes flags are needed in your build configuration, the documentation’s example uses -output-source-map. The generated release output includes a bundle and a packager map; make sure the final map you use for symbolication is the one appropriate to that build. The command above shows React Native’s documented Android symbolication pattern.
iOS release builds
In React Native’s documented release configuration, iOS source maps are disabled by default. Set SOURCEMAP_FILE in Xcode’s “Bundle React Native code and images” build phase before the React Native bundle script runs. The release output includes main.jsbundle.map; use the map from that release with metro-symbolicate, rather than an Android map or a map from another iOS export.
Expo, EAS, and OTA JavaScript
An OTA update can change JavaScript without changing the native app version. Retain the map from the exact export or build that produced the OTA bundle, and ensure the monitoring release identity changes when the JavaScript bundle materially changes. Do not depend on a post-build hook if the process has already discarded the artifact it needs to upload. The available guidance does not establish one universal Expo/EAS command for every version and configuration; verify the artifact-retention and upload steps against the integration you use.
Also popular on Amazon
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Why should every materially different JavaScript bundle have its own release?
A native app version alone cannot uniquely identify JavaScript when users can receive OTA updates. Two bundles under the same native version may differ in source, minification, module layout, or Hermes offsets. If they share one release identity, a monitoring service may be unable to determine which map belongs to a reported frame.
Use a release identity that changes whenever the shipped JavaScript changes enough to produce a different bundle or map. Keep Android and iOS identities separate, or otherwise make the platform distinction explicit. This is the practical meaning of “one release per JS bundle”: an identity should select the matching JavaScript artifact and map, not just describe the app’s broad version.
Bundle identity is not solved merely by placing source maps on a server. A Hermes contributors’ discussion explains the association problem and explores release packaging and Debug IDs as possible ways to carry identity. Treat it as a discussion of approaches, not proof that every current React Native pipeline exposes a Debug ID or that every monitoring service uses one: Hermes discussion on source-map and bundle identity.
What should I check when the right map still does not resolve the frame?
Work from the event outward. The map may be valid while the service is selecting it using a different platform, URL, release, or bundle than you intended.
Also popular on Amazon
- Portable and powerful USB-C HUB: BENFEI USB Type-C HUB, with super-soft and knot-free silicone woven design cable, meets most mobile office needs. Compact, lightweight, stylish, and powerful portable USB C Hub equipped with 1 x HDMI port, 1 x 100W charging, and 3 x USB ports. 18-month warranty, 24-hour response, to ensure you feel at ease when using our product.
- Design centered on comfort and reliability: Thanks to BENFEI's end-to-end in-house cable production capability, in-house PCBA and assembly capability, using the industry's most advanced silicone woven design and process, 20cm cable in length, no knots, super-soft, the HUB is easy to use in all scenarios: laptop, tablet, stand etc. Super-soft, 25000+ life cycles, to meet your daily carrying and office needs.
- 100W Charging: Support up to 90W USB C pass-through charging via Type-C port to keep your laptop powered. 10W is reserved for other interface operations. No data and video function on the Type-C port.
- 4K HDMI Display: The HDMI port supports media display at resolutions up to 4K 30Hz, keeping every incredible moment detailed and ultra vivid. Please note that the C port of the Host device needs to support video output.
- Transfer Files in Seconds: Transfer files and from your laptop at speeds up to 10 Gbps with USB A 3.2 port. Extra 2 USB A 2.0 ports are perfectly for your keyboards and mouse.
- Platform: Confirm whether the event is Android or iOS. An artifact for one platform should not be selected through an ambiguous shared identity.
- Frame URL: Read the actual bundle or source URL in the event. Do not assume the frame uses the filename expected from the build configuration.
- Exact bundle: Match the event to the embedded bundle or OTA update that ran. The app version by itself may not identify it.
- Final map: Verify that the uploaded map is composed for Hermes and covers both the Metro-generated JavaScript and bytecode offsets.
- Release and distribution: Check that the event’s identity resolves to this bundle’s artifacts, rather than another release that reused the same identifier.
- Upload timing: Check whether the artifacts were available before events from that release were processed. Sentry’s guidance recommends uploading the matching release artifacts, ideally in CI before events arrive.
A good diagnostic order is to run metro-symbolicate locally with the captured production stack and exact final map, then compare that result with the service’s output. A local failure points toward the trace, map, composition, or build match. A local success with an unresolved dashboard frame narrows attention to the service’s upload and artifact-selection configuration.
Is a native Hermes crash fixed with JavaScript source maps?
No. JavaScript exceptions and native crashes use different symbolication pipelines. A JavaScript source map translates generated JavaScript or Hermes positions back to source; a native crash needs native debug symbols and native crash tools.
For native Android crashes, Hermes documentation points to ndk-stack and the appropriate debug symbols. Where the symbols are obtained and how they are distributed varies by React Native version; the Hermes integration documentation distinguishes the process for React Native 0.69 and later: Hermes React Native integration documentation. If the event is a native crash rather than a JavaScript exception, follow the native-symbol workflow for the app’s React Native version instead of trying to repair it with a JS source map.
Recommended Free Tools
What is the shortest reliable checklist?
- Confirm whether the event is a JavaScript exception or native crash.
- Record its platform and exact bundle/source URL.
- Locate the final composed map generated for the bundle that actually ran.
- Keep that map paired with the corresponding bundle and source revision.
- Use a release identity unique to the JavaScript bundle and unambiguous by platform.
- Make matching artifacts available to the monitoring service before it needs to process events, where supported.
- Validate the captured trace locally with
metro-symbolicatebefore changing unrelated build settings.
Frequently Asked Questions
Can Hermes report line 1 even when the app’s source maps are enabled?
Yes. Enabling map generation does not establish that the correct final map was composed, retained, uploaded, or selected for a particular event. The displayed bundle line can persist until those associations are correct.
Also popular on Amazon
- 【Read before You Buy】 Note: This adapter is USB 2.0 version and cannot transmit HDM, VGA, or other video signals. Nevertheless, they are fully capable of charging devices,duplicating files, and can be seamlessly integrated with USB-C earphones, wireless network adapters, and SD card adapters.
- 【Easy to Use and Safe】Thanks to modern manufacturing techniques, we've made these adapters sufficiently compact so that they can remain inserted in your device without noticeable protrusion or inconvenience. This means you don't have to constantly plug and unplug them, reducing the likelihood of wear and misalignment, and making them more convenient to carry around.
- 【Reliable Quality】Engineered for enhanced durability, durable aluminum alloy shell material,get excellent wear resistance and heat dissipation,the male USB C and female USB connectors & the male USB and female USB C connectors are designed to be plugged and unplugged up to 20000 times. Provides data transfer, device charging, memory space expansion, and additional computer peripherals.
- 【Think more for you】Do you need to connect a USB-C-enabled device to an odd device that only has USB-A ports? Then these USB-A male to USB-C female adapters are made for you.Simply insert the adapter into the USB-A port on the device, and you can instantly connect your USB-C device to the device that originally didn't have the correct connection port.
- 【Trusted xiwxi Quality and Service】As a responsible brand seller, you will receive xiwxi's 12-month Quality assurance and lifetime friendly customer service, you're not just buying a product,you're investing in peace of mind with all-round quality and exceptional customer service.
Should I upload both a packager map and a Hermes map?
The important artifact for symbolication is the final map that connects the Hermes position back through generated JavaScript to original source. Individual build systems may produce intermediate maps, but uploading an intermediate in place of the composed map can leave frames unresolved.
Does an app version uniquely identify an Expo OTA update?
Not necessarily: an OTA update can change JavaScript while leaving the installed native app version unchanged. The monitoring identity needs to distinguish the JavaScript artifact that generated the event.
Are Hermes Debug IDs available in every React Native build?
The Hermes contributors’ discussion explores Debug IDs as one possible association mechanism; it does not establish that every current React Native or Expo pipeline emits or consumes them. Confirm support in the specific build and monitoring integration rather than relying on their presence.
Free tools Windows power users keep installed
One-click scans. No signup required.

