Crash Reporting

Crash Reporting

Catch, group, and resolve crashes before they tank your app store rating

Get Started Free

Smart Grouping

Crashes with the same fingerprint are grouped automatically so you see one actionable issue instead of thousands of duplicate reports.

Breadcrumb Trail

Up to 50 breadcrumb events before the crash reveal exactly what the player was doing so you can reproduce the issue reliably.

Crash-Free Session Rate

Track the percentage of sessions that complete without a crash and watch it improve as you resolve issues over time.

Quick Integration

Quick Integration

Game Running

Session
00:14:32
Crash-Free Rate
98.2%
Unity (C#)
// Unity C#: Crash Reporting
using System;
using System.Collections.Generic;
using PM.horizOn.Cloud.Manager;

// Once at startup: registers the crash session and catches unhandled exceptions
CrashManager.Instance.StartCapture();
CrashManager.Instance.SetUserId(UserManager.Instance.CurrentUser.UserId);

// Context that is sent with the next report
CrashManager.Instance.RecordBreadcrumb("scene", "Entered world_3");

// Report a handled exception as NON_FATAL
try { LoadTextures(); }
catch (Exception ex)
{
    CrashManager.Instance.RecordException(ex, new Dictionary<string, string> { ["asset"] = "boss_texture" });
}
REST
# REST API: Crash Reporting

# Create a crash session at app start
curl -X POST https://horizon.pm/api/v1/app/crash-reports/session \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sessionId":"SESSION_ID","appVersion":"1.2.3","platform":"Android"}'

# Report a crash (type CRASH, NON_FATAL or ANR)
curl -X POST https://horizon.pm/api/v1/app/crash-reports/create \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sessionId": "SESSION_ID",
    "type": "CRASH",
    "message": "NullReferenceException in PlayerController",
    "fingerprint": "PlayerController.NullRef",
    "appVersion": "1.2.3",
    "sdkVersion": "1.0.0",
    "platform": "Android",
    "os": "Android 14",
    "deviceModel": "Pixel 8"
  }'

These examples use the Unity SDK (C#) and the REST API. Godot and Unreal have the same calls in their own SDKs: see the quickstart

Frequently Asked Questions

Frequently Asked Questions

Ready to Integrate?

Start building with horizOn today. Free tier included.