rudder-cli-setup
Installs and authenticates rudder-cli. Use when installing rudder-cli, setting up rudder cli, rudder-cli command not found, or authenticating with RudderStack
Diagnoses why events are failing, dropping, or not arriving at a destination. Use when events are missing from a destination, seeing high error rates, getting auth failures, or events are stuck retrying.
$ npx -y skills add rudderlabs/rudder-agent-skills --skill rudder-destination-debugging --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/rudder-destination-debuggingContext preview
The summary Claude sees to decide when to auto-load this skill.
Diagnoses why events are failing, dropping, or not arriving at a destination. Use when events are missing from a destination, seeing high error rates, getting auth failures, or events are stuck retrying.
name: rudder-destination-debugging description: Diagnoses why events are failing, dropping, or not arriving at a destination. Use when events are missing from a destination, seeing high error rates, getting auth failures, or events are stuck retrying. allowed-tools: "Read, Write, Edit"
This skill teaches how to diagnose and fix **event delivery failures** between RudderStack and a destination — covering dropped events, auth errors, rate limiting, transformation filters, and warehouse sync failures.
Requires RudderStack MCP connected. See `rudder-mcp-setup` if not yet configured.
Events travel through four stages before reaching a destination. Each stage can fail independently:
SOURCE SDK
│ events sent
▼
PROCESSOR TRANSFORM
│ maps event to destination format
│ applies user transformations
│ tracking-plan governance (block/log/forward)
▼
ROUTER / BATCH
│ groups events for efficient delivery
│ respects destination rate limits
▼
DATA DELIVERY
│ sends HTTP request to destination API
│ parses response code
├── 2xx ──► delivered ✓
├── 298 ──► filtered (transformation dropped it)
├── 299 ──► suppressed (tracking-plan governance)
├── 429 ──► throttled → retry with backoff
├── 4xx ──► aborted (permanent failure, no retry)
└── 5xx ──► retryable → auto-retry ┌─────────────────────┐
│ Events not at dest? │
└──────────┬──────────┘
│
┌────────────────┼──────────────────┐
▼ ▼ ▼
Source sending? Metrics show Errors present?
(check source failures?
event metrics) (check dest
event metrics)
│ │ │
▼ ▼ ▼
No events at Events sent but Get error messages
source → SDK not delivered → → see error
or connection check error log classification
issue belowAsk Claude: > "Show me event metrics for source \<source-name\> over the last hour"
If source volume is zero: the problem is upstream (SDK not firing, write key wrong, source disabled). Not a destination issue.
Ask Claude: > "Show me event metrics for destination \<dest-name\> — how many succeeded vs failed?"
| Metric | Meaning | |--------|---------| | `delivered` | Accepted by destination API | | `failed` / `aborted` | Permanent failure — need manual fix | | `retried` | Temporary failure — RudderStack retrying automatically | | `filtered` | Dropped by transformation (status 298) | | `suppressed` | Blocked by tracking-plan governance (status 299) |
Ask Claude: > "What errors is destination \<dest-name\> producing?"
Match the error to the classification table in `references/error-reference.md` to determine the fix.
Ask Claude: > "Show me live events flowing through source \<source-name\>"
Compare what you see to what the destination expects. Auth errors, field name mismatches, and type errors often become obvious here.
Every delivery failure has an **error category** and an **error type**. These determine what action you need to take.
| Category | What it means | Where to look | |----------|--------------|---------------| | `network` | HTTP call to destination API failed | Destination error log, destination status page | | `dataValidation` | Event payload rejected by destination API | Live events — check field names, types, required fields | | `transformation` | User transformation threw or returned bad output | Transformation error log | | `platform` | RudderStack internal error | Contact support; usually transient |
| Error type | Retried? | What it means | What to do | |------------|----------|--------------|------------| | `retryable` | Yes, auto | Temporary network/server issue (5xx) | Wait; check destination status page | | `throttled` | Yes, auto with backoff | Destination rate-limited you (429) | Reduce event volume or request higher rate limit | | `aborted` | **No** | Permanent failure (4xx, bad credentials, bad payload) | Fix credentials or event data | | `instrumentation` | No | Event data violates destination schema | Fix SDK call — wrong field type or name | | `configuration` | No | Destination misconfigured in RudderStack | Fix destination settings (API key, URL, etc.) | | `filtered` | n/a | Transformation returned `false` or empty | Check transformation logic |
**Key rule:** If error type is `aborted`, it will never self-heal. You must fix the root cause.
**Symptoms:** High aborted count, errors mention "unauthorized", "invalid token", "forbidden".
**Causes and fixes:**
| Cause | Fix | |-------|-----| | API key expired or rotated | Update destination config with new key | | Wrong account region/URL | Verify base URL in destination settings | | Missing required OAuth scopes | Re-authorize the OAuth connection | | IP allowlist blocking RudderStack | Add RudderStack egress IPs to destination allowlist |
Ask Claude: > "Show me the current config for destination \<dest-name\>"
Then open the destination in the RudderStack dashboard and update the credentials.
**Symptoms:** High aborted count, errors mention "invalid payload", "required field missing", "unexpected field".
**Root causes:** 1. **Event property has wrong type** — e.g. `revenue` sent as a string `"49.99"` but destination expects a number 2. **Required field missing** — destination API re
A Claude Code plugin marketplace and Agent Skills collection that teaches your AI coding agent how to drive every programmatic RudderStack surface — CLI, MCP server, Terraform, and Profiles — with the right preflight checks, commands, and recovery paths.
Installs and authenticates rudder-cli. Use when installing rudder-cli, setting up rudder cli, rudder-cli command not found, or authenticating with RudderStack
Validates, previews, and applies RudderStack resource changes via YAML specs. Use when iterating on RudderStack resources with rudder-cli - validates specs,…
Imports existing RudderStack workspace resources into YAML files for git-based management. Use when importing existing RudderStack resources to CLI management…
Creates and manages RudderStack transformations and libraries with local testing. Use when creating, editing, or managing RudderStack transformations and…
Generates type-safe SDKs (Swift/Kotlin) from tracking plans with compile-time validation. Use when generating type-safe event tracking code from tracking plans…
Derives tracking plans from existing codebase types and structures. Use when instrumenting an existing product that wasn't well-instrumented or restructuring…