DocsError TrackingOverview

Error Tracking

Track errors in production with stack traces and context. Debug issues faster with real-time telemetry.


How It Works

  1. Your game reports errors - Call the report function when errors occur
  2. SDK sends to Launcher - HTTP POST with error details and context
  3. Launcher aggregates - Collects and displays error data
  4. You debug faster - See errors with full context
┌─────────────┐       HTTP POST       ┌─────────────────┐
│   Your      │──────────────────────►│   Shard         │
│   Game      │  /api/monitor/report  │   Launcher      │
└─────────────┘                       └─────────────────┘


                                      ┌─────────────────┐
                                      │   Error Data    │
                                      │   Aggregated    │
                                      └─────────────────┘

Quick Start

1. Install the SDK

Follow the installation guide for your engine:

2. Report Errors in Your Game

# Godot 4.x
func _on_connection_failed():
    ShardSDK.monitor.report_error("Connection to server failed")
 
# With stack trace
func _on_exception(message: String):
    var stack = get_stack()
    var stack_str = ""
    for frame in stack:
        stack_str += "%s:%d in %s\n" % [frame.source, frame.line, frame.function]
    ShardSDK.monitor.report_error(message, stack_str)

What It Captures

Manual Reporting

  • Custom errors you report
  • Exception messages
  • Stack traces

Context

  • Error message
  • Stack trace (when provided)
  • Timestamp

Configuration

All SDKs support the same configuration options:

SettingDefaultDescription
launcher_urlhttp://localhost:9876Shard Launcher URL
enable_monitortrueEnable/disable error reporting

Configure in Project Settings under shard_sdk/:

# Or programmatically
ShardSDK.launcher_url = "http://localhost:9876"
ShardSDK.enable_monitor = true

Error Handling

All SDKs use fire-and-forget HTTP requests with silent failure:

  • If the Shard Launcher is not running, calls silently fail
  • No exceptions are thrown to your game code
  • Network timeouts are handled automatically (5 second timeout)

Your game continues running normally even if the launcher is unavailable.


Engine-Specific Setup


Next Steps