Get a demo
Use cases

Your app is doing something you can't reproduce

Every page here starts from a symptom, explains the real causes, and shows the one piece of runtime evidence that pins it down. When the bug only shows up on a device or OS you don't have, you reproduce it on a cloud device and read the record.

Thread timeline

Why a bug only happens sometimes, and how to reproduce it

A bug that fires on maybe one tap in eight is usually a race whose timing you can't control locally. Here is how to force it and record the run that broke.

Read the diagnosis →
Screen capture

Reproduce a bug that only happens on first launch

A crash or blank screen on a fresh install that never recurs comes from empty first-run state that vanishes the instant you relaunch and the app writes it.

Read the diagnosis →
Crash report

App crashes on launch only on iOS 18

App crashes on launch only on iOS 18 usually come from a stricter runtime check or a changed system value. A missing dyld symbol rarely explains that.

Read the diagnosis →
Rendered layout

App layout breaks only on iPhone SE

Your UI fits a 6.7-inch simulator but clips on the iPhone SE, the shortest modern iPhone at 667 points. Why short screens break the layout, and how to see it.

Read the diagnosis →
Network waterfall

API requests work in TestFlight but fail in production

API calls pass in TestFlight but 404, stall on TLS, or fail in the App Store build. The cause is a runtime environment difference the request record exposes.

Read the diagnosis →
Screen capture

App breaks after an update for only some users

An update that breaks for only some users is new code meeting old persisted on-device state; reproduce it by upgrading over the old build, not installing fresh.

Read the diagnosis →
Screen capture

iOS app loses state when backgrounded

Your iOS app forgets the session and screen after the user switches away and returns, because iOS terminated the suspended process and nothing restored it.

Read the diagnosis →
Network waterfall

App stuck on a loading spinner that never resolves

A spinner that never resolves means the request never returned, the response was dropped, or the loading flag never cleared; a runtime record tells you which.

Read the diagnosis →
Memory curve

iOS app memory grows until it crashes

Memory climbs every time you open a screen and never falls back, then iOS jetsams the app with no crash log. The curve shape tells you which leak it is.

Read the diagnosis →
FPS trace

App drops frames when scrolling a long list

A long list scrolls clean for a screen, then snags: main-thread work during cell reuse (decode, layout, formatting) blows the frame budget. Read the FPS trace.

Read the diagnosis →