Skills Development Collect Anthropic Debug Evidence

Collect Anthropic Debug Evidence

v20260423
clade-debug-bundle
A comprehensive tool designed to help developers gather all necessary evidence when facing persistent issues or API errors with Anthropic's Claude models. It collects vital data points such as the request ID, full error payloads, status codes, and provides reproducible cURL commands, ensuring developers can file high-quality support tickets.
Get Skill
103 downloads
Overview

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

Error Cause Solution
API Error Check error type and status code See 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.

Info
Category Development
Name clade-debug-bundle
Version v20260423
Size 2.92KB
Updated At 2026-04-26
Language