mcpField
A
api-error-handling

api-error-handling

github.com/aj-geddesDevelopment373510 installsUpdated 34w ago
Repository

About api-error-handling

An API error-handling skill for developers covering standardized responses, categorization, logging, and monitoring. It also provides patterns for retries, circuit breakers, and input validation.

Key features

  1. 01Standardize error response formats
  2. 02Define error categories and status codes
  3. 03Log request IDs and track errors
  4. 04Provide retry and circuit breaker patterns
  5. 05Guide input validation and error monitoring

Use cases

  1. 01Unify error responses across API endpoints
  2. 02Debug production issues
  3. 03Handle transient failures and prevent cascades
  4. 04Monitor error rates and trigger alerts

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill api-error-handling

After installing, type/api-error-handlingin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
error-codes-reference.md
monitoring-patterns.md
retry-strategies.md
validation-examples.md

Details

From the project README

API Error Handling

Table of Contents

Overview

Build robust error handling systems with standardized error responses, detailed logging, error categorization, and user-friendly error messages. This skill covers the full lifecycle from throwing typed errors through logging, monitoring, and client-facing response formatting.

When to Use

  • Handling API errors consistently across endpoints
  • Debugging production issues with request tracing
  • Implementing error recovery strategies (retry, circuit breaker)
  • Monitoring and alerting on error rates
  • Providing meaningful, actionable error messages to clients
  • Validating request inputs before processing
  • Tracking error patterns over time

Quick Start

Minimal standardized error response format:

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Input validation failed",
    "statusCode": 422,
    "requestId": "req_abc123xyz789",
    "timestamp": "2025-01-15T10:30:00Z",
    "details": [
      { "field": "email", "message": "Invalid email format", "code": "INVALID_EMAIL" }
    ]
  }
}

Custom error class (Node.js):

class ApiError extends Error {
  constructor(code, message, statusCode = null, details = null) {
    super(message);
    this.code = code;
    this.statusCode = statusCode || ERROR_CODES[code]?.status || 500;
    this.details = details;
    this.timestamp = new Date().toISOString();
  }
}

// Usage
throw new ApiError("NOT_FOUND", "User not found", 404);
throw new ApiError("VALIDATION_ERROR", "Missing fields", 422, fieldErrors);

Reference Guides

Detailed implementations in the references/ directory:

GuideContents
Error Codes & Response FormatComplete ERROR_CODES map, response formatter, global middleware (Node.js + Python)
Retry Strategies & Circuit BreakerExponential backoff, jitter, circuit breaker pattern
Monitoring & TrackingSentry integration, error rate metrics, /metrics/errors endpoint
Validation PatternsInput validation, schema guards, detecting bad responses before errors occur

Best Practices

✅ DO
  • Use a consistent error response format across all endpoints
  • Include requestId and traceId in every error for observability
  • Log 5xx errors at ERROR level; log 4xx at WARN level
  • Provide actionable error messages — tell the client what to fix
  • Use standard HTTP status codes (4xx client errors, 5xx server errors)
  • Implement retry with exponential backoff for transient failures
  • Use circuit breakers to prevent cascade failures
  • Validate inputs early and return all field errors at once
  • Monitor error rates and alert on anomalous spikes
❌ DON'T
  • Expose stack traces or internal implementation details to clients
  • Return HTTP 200 for error responses
  • Silently swallow errors
  • Log sensitive data (passwords, tokens, PII)
  • Use vague messages like "Something went wrong"
  • Mix error handling logic with business logic
  • Retry non-idempotent operations or client errors (4xx)
  • Return different error shapes from different endpoints

Comments

Markdown supported