Skip to main content
This page documents all standard error codes used across ACP implementations.

Error Response Patterns

AdCP uses different error handling patterns depending on the severity and context:

Task-Level Errors (Non-Fatal Warnings)

Use the optional errors array in successful responses for warnings and non-blocking issues:
Error object fields:
  • code (required): Error code for programmatic handling
  • message (required): Human-readable description
  • field (optional): Field path associated with the error
  • suggestion (optional): Recommended action
  • details (optional): Additional task-specific context
  • retry_after (optional): Seconds to wait before retry

Protocol-Level Errors (Fatal)

For operations that cannot be completed, use protocol-specific error mechanisms: MCP (Model Context Protocol):
A2A (Agent-to-Agent Protocol):

Authentication Errors

INVALID_CREDENTIALS

Invalid or malformed authentication credentials. Example:
Resolution: Verify API key is correct and active.

TOKEN_EXPIRED

Authentication token has expired. Example:
Resolution: Refresh OAuth token or re-authenticate.

INSUFFICIENT_PERMISSIONS

Account lacks required permissions for the operation. Example:
Resolution: Contact administrator to upgrade account permissions.

Validation Errors

MISSING_REQUIRED_FIELD

Required request parameter is missing. Example:
Resolution: Include all required fields in request.

INVALID_FIELD_VALUE

Field value doesn’t meet validation requirements. Example:
Resolution: Provide valid field values per specification.

INVALID_FIELD_FORMAT

Field format is incorrect. Example:
Resolution: Use correct field format as specified.

Resource Errors

SEGMENT_NOT_FOUND

Specified segment ID doesn’t exist or is no longer available. Example:
Resolution: Use current segment ID from recent get_signals response.

SIGNAL_UNAVAILABLE

Signal exists but is not available for the requested platform/seat. Example:
Resolution: Use available platform or check with provider.

Authorization Errors

PLATFORM_UNAUTHORIZED

Account lacks access to specified platform. Example:
Resolution: Use authorized platform or upgrade account access.

SEAT_UNAUTHORIZED

Account cannot access specified seat. Example:
Resolution: Use authorized seat or request access.

Operation Errors

ALREADY_ACTIVATED

Signal is already active for the specified platform/seat. Example:
Resolution: Use existing activation or check status with check_signal_status.

ACTIVATION_FAILED

Signal activation process failed. Example:
Resolution: Wait and retry, or contact support if persistent.

INVALID_PRICING_MODEL

Requested pricing model is not available for this signal. Example:
Resolution: Use available pricing model or choose different signal.

Schema Version Errors

UNSUPPORTED_VERSION

Requested AdCP schema version is not supported by the server. Example:
Resolution: Use a compatible schema version or upgrade to a server that supports the requested version.

Rate Limiting Errors

RATE_LIMIT_EXCEEDED

Too many requests within the rate limit window. Example:
Resolution: Wait for rate limit window to reset before retrying.

System Errors

INTERNAL_SERVER_ERROR

Unexpected server error occurred. Example:
Resolution: Retry request. Contact support if error persists.

SERVICE_UNAVAILABLE

External service dependency is temporarily unavailable. Example:
Resolution: Wait for service recovery and retry.

TIMEOUT

Request exceeded maximum processing time. Example:
Resolution: Refine request parameters or retry.

Data Errors

DATA_QUALITY_ISSUE

Data quality problem detected. Example:
Resolution: Contact provider for updated signal data.

USAGE_REPORT_REJECTED

Usage report failed validation. Example:
Resolution: Correct data and resubmit usage report.

Error Handling Best Practices

Retry Logic

Implement exponential backoff for retryable errors:

Error Categorization

Group errors by type for appropriate handling:

User-Friendly Messages

Convert technical errors to user-friendly messages:

Getting Help

If you encounter errors not documented here:
  1. Check the details field for additional context
  2. Review request format against the specification
  3. Contact platform support with the request_id if provided
  4. Report new error patterns to help improve documentation
For technical support: support@adcontextprotocol.org