Non-fatal Error Reporting

See the failures that never crash, but still cost you users

A declined payment, a response that cannot be parsed, a screen frozen for seconds. Report handled errors with one line of code, catch frozen main threads automatically and fix them with the logs that led up to them.

Included in every plan, including FREE · iOS, tvOS & Android · Hosted in Switzerland

1 lineof code to report an error
5 sfrozen main thread reported as ANR
Stack traceof the blocked main thread for every ANR
Groupedby message similarity, automatically

Every error, with the story behind it

Users rarely report a flow that quietly failed. Appelium does it for them, with the context you need to reproduce it.

  • Your error message, or on Android an Exception, reported with a single call.
  • Activity logs captured up to the moment of the error, so you can see what the user did.
  • App version and build, device model, OS version and locale.
  • An optional user identifier to follow up with the affected user.
  • Your own attachment of up to 100 KB, such as the response that failed to parse.

Frozen screens, caught automatically

An app that stops responding feels broken, even when it never crashes. With error reporting enabled, Appelium watches the main thread for you.

  • Main thread blocked for more than 5 seconds is reported as an ANR without any extra code.
  • Stack trace of the blocked thread shows exactly which code froze the screen.
  • Same context as every error: activity logs, device, OS and app version.
  • No false alarms from breakpoints: detection pauses while a debugger is attached.

From thousands of errors to a short list

See which errors affect the most users, which version introduced them and whether your fix worked.

Smart grouping

Errors are grouped by message similarity. Numbers, identifiers, e-mail addresses and URL parameters are masked first, so one problem is one group.

Impact at a glance

Error counts, affected devices and the first and latest app version for every group, plus error-free sessions trends filtered by app version or OS. For failing API calls, explore network monitoring & alerts.

Fixes that stay fixed

Close a group with the version that contains the fix. If the error comes back in that version or a later one, the group reopens automatically.

Need the full picture of app stability?

Crash reporting adds symbolicated stack traces, AI summaries, MCP tools for AI agents and crash-free sessions alarms.

Explore crash reporting →

One line to report, zero lines for ANRs

Enable error reporting when you start the SDK, then report errors wherever your app handles them.

Swift · iOS & tvOS
AppeliumFeedback.start(
    apiKey: "YOUR_API_KEY",
    errorReporting: .enabled()
)

AppeliumFeedback.reportError("Cart parsing failed")
Kotlin · Android
AppeliumFeedback.start(
    apiKey = "YOUR_API_KEY",
    application = this,
    errorReporting = ErrorReportingConfiguration.Enabled()
)

AppeliumFeedback.reportError(exception = exception)

Guides for iOS, tvOS and Android.

Frequently asked questions

What is a non-fatal error?

A non-fatal error is a failure your app handles without crashing, such as a declined payment, a response that cannot be parsed or a failed sync. The user stays in the app, but the flow they started did not work. Appelium lets you report these errors with a single call so you can see how often they happen and why.

What does an Appelium error report contain?

Each report contains your error message, the time it was reported, the activity logs captured up to that moment, the app version and build, device model, OS version and locale. You can add a user identifier and attach your own file of up to 100 KB. Automatically detected ANRs also include a stack trace of the blocked main thread.

How are errors grouped?

Errors are grouped by message similarity. Variable parts such as numbers, identifiers, e-mail addresses and URL parameters are masked first, so “Order 1832 failed” and “Order 5530 failed” end up in the same group. Consistent error messages give the best grouping.

Does error reporting slow down my app?

No. Reporting an error only records it locally. Error reports are uploaded together with other session diagnostics when the app moves to the background, so there is no extra network request per error. Error reporting also pauses while a debugger is attached.

Which plans include error reporting?

Non-fatal error reporting and ANR detection are included in every plan, including the FREE plan for indie developers, for iOS, tvOS and Android apps.

Stop guessing what went wrong

Every handled error and frozen screen, with the logs behind it. Free in every plan.

You are in a good company - Join over 150 apps!

Over 150 apps in Switzerland choose to use Appelium.

homegate
twint
timeplaces

👨‍💻 Latest content from our Engineering blog:

XPCService

  • Strongly typed bidirectional communication channel between UIApplication and XCUIApplication with powerful APIs and super fast performance.


    More about XPCService

Screen Flow Pattern in UI tests

  • Robust and scaleable pattern for structuring UI tests. Highly reusable screen verification code with human readable test case code. All flows and interactions statically typed 🙌.


    More about the Screen Flow Pattern

SnapshotQuery™

  • Learn about SnapshotQuery - our latest addition to AppeliumTests which radically improves the performance of your XCUITests while making them more stable and reliable at the same time.


    More about SnapshotQuery

Early access and news

Be the fist one to know about all the exciting engineering posts and product announcements.