clade-debug-bundle

v2026.09.24

Collect debug evidence for Anthropic API issues — request IDs, headers, Use when working with debug-bundle patterns. error payloads, and reproduction steps for support tickets. Trigger with "anthropic debug", "claude support ticket", "anthropic request id", "debug claude api call".

GitHub
Install command
npx skhub add jeremylongshore/clade-debug-bundle
Markdown
SKILL.md

Anthropic Debug Bundle

Overview

When you need to file a support ticket or debug a persistent issue, collect these items.

Prerequisites

  • Anthropic SDK installed
  • An API error or issue to debug
  • Access to application logs

Instructions

Step 1: Get the Request ID

Every Anthropic API response includes a request-id header. This is the single most important thing for support tickets.

try {
  const message = await client.messages.create({ ... });
  // Access response headers via the raw response
} catch (err) {
  if (err instanceof Anthropic.APIError) {
    console.error('Request ID:', err.headers?.['request-id']);
    console.error('Status:', err.status);
    console.error('Error type:', err.error?.type);
    console.error('Message:', err.message);
  }
}

Step 2: Log Full Error Details

function logAnthropicError(err: unknown) {
  if (err instanceof Anthropic.APIError) {
    const bundle = {
      timestamp: new Date().toISOString(),
      request_id: err.headers?.['request-id'],
      status: err.status,
      error_type: err.error?.type,
      error_message: err.message,
      rate_limit_remaining: err.headers?.['claude-ratelimit-requests-remaining'],
      rate_limit_reset: err.headers?.['claude-ratelimit-requests-reset'],
    };
    console.error('Anthropic Debug Bundle:', JSON.stringify(bundle, null, 2));
    return bundle;
  }
  console.error('Non-API error:', err);
}

Step 3: Test with curl

# Minimal reproduction — include this in support tickets
curl -v https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "claude-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 100,
    "messages": [{"role": "user", "content": "test"}]
  }' 2>&1 | grep -E "request-id|HTTP|error"

Step 4: Check Status

# API status
curl -s https://status.anthropic.com/api/v2/status.json | python3 -m json.tool

# Recent incidents
curl -s https://status.anthropic.com/api/v2/incidents.json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for inc in data['incidents'][:3]:
    print(f\"{inc['created_at'][:10]}: {inc['name']} ({inc['status']})\")
"

What to Include in Support Tickets

  1. Request ID (from request-id header)
  2. Timestamp (UTC)
  3. Model used
  4. Error type and message (full JSON)
  5. curl reproduction (sanitize your API key)
  6. SDK version (npm list @claude-ai/sdk or pip show anthropic)

Python Debug

try:
    message = client.messages.create(...)
except anthropic.APIStatusError as e:
    print(f"Request ID: {e.response.headers.get('request-id')}")
    print(f"Status: {e.status_code}")
    print(f"Error: {e.message}")

Output

  • Request ID extracted from error response headers
  • Full error bundle with timestamp, status, error type, and rate limit state
  • curl command for minimal reproduction (ready to paste into support ticket)
  • Anthropic API status and recent incidents checked

Error Handling

ErrorCauseSolution
API ErrorCheck error type and status codeSee clade-common-errors

Examples

See Step 1 (request ID extraction), Step 2 (full error logging), Step 3 (curl reproduction), and Step 4 (status check) above.

Resources

Next Steps

See clade-common-errors for specific error solutions.

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/.curated/clade-debug-bundle

Default branch

main

Latest commit

e5a6c3b

Tree SHA

c2dc8e8