Skip to content

Error Handling

All SDK errors throw AISecSDKException with a typed errorType property.

Error Types

ErrorType Value When
SERVER_SIDE_ERROR AISEC_SERVER_SIDE_ERROR 5xx responses from the API
CLIENT_SIDE_ERROR AISEC_CLIENT_SIDE_ERROR 4xx responses / network failures
USER_REQUEST_PAYLOAD_ERROR AISEC_USER_REQUEST_PAYLOAD_ERROR Invalid input (bad UUID, oversized content)
MISSING_VARIABLE AISEC_MISSING_VARIABLE Missing required config (API key, client ID)
AISEC_SDK_ERROR AISEC_SDK_ERROR Internal SDK errors
OAUTH_ERROR AISEC_OAUTH_ERROR OAuth2 token fetch failures

Usage

import { AISecSDKException, ErrorType } from '@cdot65/prisma-airs-sdk';

try {
  await scanner.syncScan(profile, content);
} catch (err) {
  if (err instanceof AISecSDKException) {
    switch (err.errorType) {
      case ErrorType.SERVER_SIDE_ERROR:
        console.error('Server error — retry later:', err.message);
        break;
      case ErrorType.CLIENT_SIDE_ERROR:
        console.error('Bad request:', err.message);
        break;
      case ErrorType.USER_REQUEST_PAYLOAD_ERROR:
        console.error('Invalid input:', err.message);
        break;
      case ErrorType.MISSING_VARIABLE:
        console.error('Missing config:', err.message);
        break;
      case ErrorType.OAUTH_ERROR:
        console.error('Auth failed:', err.message);
        break;
    }
  }
}

Retry Behavior

The SDK automatically retries on transient errors:

  • Status codes: 500, 502, 503, 504
  • Backoff: Exponential with full jitter (uniform [0, 2^attempt × 1000ms])
  • Max retries: Configurable 0-5, default 5
  • 401/403 handling: Management/Model Security/Red Team clients automatically refresh the OAuth token and retry once on 401 or 403 responses