Quick answer: Capture the bug from real devices in the field with full context, since real devices differ from your editor/emulator in hardware, performance, optimization, and platform behavior, use the device context to find the cause, and verify on real devices.
A bug that only happens on real devices, never in your editor or emulator, is frustrating because you can't see it where you develop. The cause is the real differences between your dev environment and actual hardware. Here is what to do when a bug only happens on real devices.
Capture the Bug From Real Devices
Since the bug only happens on real devices, you have to capture it there, from the actual devices in the field, not your editor or emulator where it doesn't occur. Capture it with full context, the stack trace, device, OS, and conditions, so you have evidence from where the bug actually happens.
Bugnet captures crashes and errors from real devices in the field with full context, so a real-device-only bug, invisible in your editor/emulator, is captured where it occurs. That's exactly what you need, the evidence from the real devices (stack trace, device, conditions), since your dev environment won't reproduce it.
Identify the Dev-Environment Difference
Find what's different about real devices: hardware (real GPUs, chipsets, memory the editor/emulator doesn't replicate), performance (real devices are slower, exposing timing and resource issues), build optimization (real-device builds differ from the editor), and platform behavior (the real OS and platform behave differently than your dev setup). The captured device context points at which.
Bugnet's captured device, OS, and stack trace help you connect the bug to a real-device difference, hardware, performance, or platform behavior. Knowing which devices it happens on and where it crashes tells you which dev-environment difference is the cause (a hardware issue, a timing issue from real-device speed, a platform behavior), so you fix the right thing.
Fix and Verify on Real Devices
Fix the cause the real-device difference revealed, then verify on real devices (in the field) that the bug stopped, not in your editor where it never happened. Since the bug is real-device-specific, the field data from real devices is how you confirm the fix worked.
Bugnet tracks crashes per version with device context, so after fixing you can confirm the bug stopped on real devices in the field. This verifies the fix where the bug lived, the real devices, the field data showing it gone, which your editor couldn't confirm since the bug never happened there, real-device verification is essential for a real-device-only bug.
When a bug only happens on real devices, capture it from real devices in the field with full context, identify the dev-environment difference causing it (hardware, performance, optimization, or platform), fix it, and verify on real devices. Real-device-only bugs come from the differences between your editor and actual hardware.