Skip to main content
When something goes wrong, Reducto returns an HTTP status code and error message.

Error Response Format

Client Errors (4xx)

These errors indicate a problem with your request.

Server Errors (5xx)

These indicate a problem on Reducto’s side. Most are automatically retried by the SDK.

Automatic Retries

The Reducto SDKs automatically retry requests that fail with these status codes:
Default retry behavior:
  • Max retries: 2
  • Backoff: Exponential with jitter
  • Timeout: 1 hour per request (3600 seconds)
You can customize retry behavior:

Handling Errors

Common Issues

Cause: The URL you provided isn’t in a recognized format.Solutions:
  • For S3: Use s3://bucket-name/key format
  • For presigned URLs: Ensure the full URL including query parameters is provided
  • For reducto:// URLs: Use the exact string returned from /upload
Cause: Reducto cannot access the file at the URL you provided.Solutions:
  • Check that presigned URLs haven’t expired
  • Verify the URL is publicly accessible or properly authenticated
  • For S3, ensure the bucket policy allows access from Reducto’s IPs
Cause: You’ve exceeded the request rate limit.Solutions:
  • Implement exponential backoff
  • Switch to async endpoints (/parse_async) which have higher limits
  • Use separate API keys for different applications
  • Contact support for higher limits
Cause: An image in your document exceeds the maximum supported dimensions (50 megapixels total or 15,000 pixels on any single axis).Solutions:
  • Resize or re-export images to stay under 50 megapixels (e.g., under ~8200x6100)
  • Ensure no single axis exceeds 15,000 pixels
  • For scanned documents, reduce the scan DPI
Cause: The document took too long to process.Solutions:
  • Use async endpoints for large documents
  • Process fewer pages using page_range
  • Disable agentic modes if not needed
  • Check if the document is unusually complex

Rate Limits

Understanding request limits.

Async Processing

Avoid timeouts with async endpoints.