# Error Tracking Ruby

> PostHog error tracking for Ruby applications using the posthog-ruby gem: installs the SDK, captures

PostHog error tracking for Ruby applications using the posthog-ruby gem: installs the SDK, captures exceptions with client.capture_exception, sets up fingerprints, alerts, issue monitoring and assignment, and source map uploads. Use when adding PostHog exception tracking to a Ruby app, script or CLI, or when configuring PostHog error tracking alerts or issue handling for Ruby code.

- Page: https://ss33.ai/skills/posthog/error-tracking-ruby-52198756571
- Publisher: posthog
- Category: [Software Development](https://ss33.ai/skills/category/software-development-t44z8z) › [DevOps & cloud](https://ss33.ai/skills/category/software-development-t44z8z/devops-and-cloud-unkt50)
- License: MIT
- Source: https://github.com/posthog/skills/blob/4922922c4ca74db4e6705cecbced2a46fd103f27/skills/posthog/all/skills/error-tracking-ruby/SKILL.md

## Skill

SKILL.md: https://ss33.ai/api/v1/ss33/download/posthog/error-tracking-ruby-52198756571

# PostHog error tracking for Ruby

This skill helps you add PostHog error tracking to Ruby applications.

## Reference files

- `references/ruby.md` - Ruby error tracking installation - docs
- `references/fingerprints.md` - Fingerprints - docs
- `references/alerts.md` - Send error tracking alerts - docs
- `references/monitoring.md` - Monitor and search issues - docs
- `references/assigning-issues.md` - Assign issues to teammates - docs
- `references/upload-source-maps.md` - Upload source maps - docs

Consult the documentation for API details and framework-specific patterns.

## Key principles

- **Environment variables**: Always use environment variables for PostHog keys and host URLs. Never hardcode them.
- **Minimal changes**: Add error tracking alongside existing error handling. Don't replace or restructure existing error handling code.
- **Autocapture first**: Enable exception autocapture in the SDK initialization before adding manual captures.
- **Source maps**: Upload source maps so stack traces resolve to original source code, not minified bundles.
- **Manual capture for boundaries**: Use `captureException()` at error boundaries and catch blocks for errors that don't propagate to the global handler.

## Framework guidelines

- posthog-ruby is the Ruby SDK gem name (add `gem 'posthog-ruby'` to Gemfile) but require it with `require 'posthog'` (NOT `require 'posthog-ruby'`)
- Use PostHog::Client.new(api_key: key, host: host) for instance-based initialization in scripts and CLIs
- In CLIs and scripts: MUST call client.shutdown before exit or all events are lost
- Use begin/rescue/ensure with shutdown in the ensure block for proper cleanup
- capture and identify take a single hash argument: client.capture(distinct_id: 'user_123', event: 'my_event', properties: { key: 'value' })
- capture_exception takes POSITIONAL args (not keyword): client.capture_exception(exception, distinct_id, additional_properties) — do NOT use `distinct_id:` keyword syntax
