API Error Format
All errors return a consistent envelope:Common Errors
| Code | Status | Cause | Fix |
|---|---|---|---|
VALIDATION_ERROR | 422 | Missing or invalid fields | Check required fields in the API reference |
UNAUTHORIZED | 401 | Invalid or missing API key | Verify Authorization: Bearer sk_live_... header |
FORBIDDEN | 403 | Namespace mismatch or insufficient permissions | Check X-Namespace header matches the resource |
NOT_FOUND | 404 | Resource doesn’t exist | Verify the ID and namespace |
RATE_LIMIT_EXCEEDED | 429 | Too many requests | Back off and retry with exponential delay |
TASK_FAILED | 500 | Processing error in engine | Check task details for the specific failure reason |
Rate Limits
| Tier | Requests/min | Concurrent tasks |
|---|---|---|
| Free | 60 | 5 |
| Pro | 600 | 50 |
| Enterprise | Custom | Custom |
Retry-After header with seconds to wait.
Debugging Checklist
Objects not processing
- Check batch status:
GET /v1/buckets/{bucket_id}/batches/{batch_id} - Check task status:
GET /v1/tasks/{task_id} - Verify the collection’s
feature_extractormatches the bucket schema’s blob types - Check for failed documents:
GET /v1/buckets/{bucket_id}/batches/{batch_id}/failed
Retriever returning zero results
- Verify documents exist:
POST /v1/collections/{collection_id}/documents/list - Check the
feature_uriin your stage matches the collection’s extractor output - Try a broader query or lower the similarity threshold
- Use the explain endpoint to see the execution plan
Poor retrieval quality
- Check if the right extractor is being used for your query type (text query → text embedding, image query → visual embedding)
- Add a reranking stage to improve precision
- Review the execution trace for score distributions
- Consider adding more retriever stages (filters, MMR for diversity)
Slow processing
- Video processing time scales with duration — 1 min video ≈ 1-2 min processing
- Use batch processing for bulk imports instead of single-object ingestion
- Check for resource contention:
GET /v1/tasks?status=PROCESSING
FAQ
Can I use multiple feature extractors on the same data? Yes — create multiple collections pointing to the same bucket, each with a different extractor. How do I re-process documents after changing a collection’s extractor? Create a new batch with the same objects and submit it. New documents replace old ones. What file formats are supported? Video (MP4, MOV, AVI, WebM), Images (JPG, PNG, WebP, GIF), Audio (MP3, WAV, M4A, FLAC), Documents (PDF, DOCX, TXT, HTML). How do I delete all data in a namespace? Delete the namespace:DELETE /v1/namespaces/{namespace_id}. This removes all buckets, collections, retrievers, and documents.
Is there a size limit for uploads?
Default: 500MB per file. Enterprise plans support larger files. Use URL references for files already in cloud storage.
Contact support →
