Skip to main content
Corsair catches all API errors and routes them through a hierarchical error handling system. You can define handlers at multiple levels, and Corsair will use the most specific one available.
corsair.ts

Error Handler Hierarchy

Corsair checks for error handlers in this order:
  1. Plugin-specific error — e.g., Slack rate limit handler
  2. Root-level error — e.g., global rate limit handler for all integrations
  3. Plugin default — e.g., default Slack error handler
  4. Root default — default handler for all integrations
  5. Corsair fallback — built-in handler that fails gracefully
This means you only need to define handlers for the cases you care about.

Plugin-Level Handler

Handle errors specific to a single integration.
corsair.ts

Root-Level Handler

Handle errors across all integrations.
corsair.ts

Default Handler

Catch any error that doesn’t match a specific handler.
corsair.ts

No Handler Needed

You don’t have to define any error handlers. Corsair provides sensible defaults that ensure your application fails gracefully. Start simple and add handlers as needed.
corsair.ts

Retry Strategies

When returning from an error handler, you can specify:
  • maxRetries — number of retry attempts
  • retryStrategy"exponential_backoff_jitter" or other strategies