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
Users rarely report a flow that quietly failed. Appelium does it for them, with the context you need to reproduce it.
Exception, reported with a single call.An app that stops responding feels broken, even when it never crashes. With error reporting enabled, Appelium watches the main thread for you.
See which errors affect the most users, which version introduced them and whether your fix worked.
Errors are grouped by message similarity. Numbers, identifiers, e-mail addresses and URL parameters are masked first, so one problem is one group.
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.
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.
Crash reporting adds symbolicated stack traces, AI summaries, MCP tools for AI agents and crash-free sessions alarms.
Enable error reporting when you start the SDK, then report errors wherever your app handles them.
AppeliumFeedback.start(
apiKey: "YOUR_API_KEY",
errorReporting: .enabled()
)
AppeliumFeedback.reportError("Cart parsing failed")AppeliumFeedback.start(
apiKey = "YOUR_API_KEY",
application = this,
errorReporting = ErrorReportingConfiguration.Enabled()
)
AppeliumFeedback.reportError(exception = exception)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.
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.
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.
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.
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.
Every handled error and frozen screen, with the logs behind it. Free in every plan.
Strongly typed bidirectional communication channel between UIApplication and XCUIApplication with powerful APIs and super fast performance.
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 🙌.
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.
Be the fist one to know about all the exciting engineering posts and product announcements.