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:- Max retries: 2
- Backoff: Exponential with jitter
- Timeout: 1 hour per request (3600 seconds)
Handling Errors
Common Issues
400: Invalid URL format
400: Invalid URL format
Cause: The URL you provided isn’t in a recognized format.Solutions:
- For S3: Use
s3://bucket-name/keyformat - For presigned URLs: Ensure the full URL including query parameters is provided
- For reducto:// URLs: Use the exact string returned from
/upload
403: Permission error
403: Permission error
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
429: Rate limit exceeded
429: Rate limit exceeded
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
413: Image too large
413: Image too large
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
504: Timeout errors
504: Timeout errors
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
Related
Rate Limits
Understanding request limits.
Async Processing
Avoid timeouts with async endpoints.