Limits and errors
Capacity, supported file formats and failure handling.
Capacity
These limits apply to the current API. Processing timings below are measurements, not a service guarantee.
| Limit | Value |
|---|---|
| Non-deleted stores per organization | 100 |
| Files per store | 10,000 |
| Source file size | 100,000,000 bytes (100 MB) |
| Estimated tokens per file | 5,000,000 |
| Files per batch | 1–500 |
| Store name | 256 characters |
| metadata / attributes keys | 16 |
| Key / string value length | 64 / 512 characters |
| Static chunk size | 100–4096 tokens |
| Default chunk / overlap | 800 / 400 tokens |
| Maximum overlap | ≤ ½ chunk size |
| Search results (files on the compatible API, chunks on the native API) | 1–50; default 10 |
| List page size | 1–100; default 20 |
| Expiry days | 1–365 |
| JSON request body | 1,000,000 bytes |
| Ingestion deadline | 30 minutes |
| Processing retries | 3 |
| Retention after deletion | 7 days |
Metadata values are strings. Attribute values may be strings, numbers or booleans. Filter nesting is limited to 20 levels below the root. Search candidates are capped at 50 per retrieval method. Search has no next page.
File formats and processing time
A knowledge base can ingest these types (as detected by the file service):
| Type | Ingested content |
|---|---|
| Document text | |
| DOCX, PPTX, XLSX | Document text |
| PNG, JPEG, GIF, WebP | A model-generated description of the picture, not verbatim OCR |
| HTML | Visible text, without scripts and styles |
| Plain text, Markdown, CSV, JSON | The original text |
An accepted upload is not necessarily ingestible. The file service accepts these types, but a knowledge base cannot ingest them: audio (MP3, WAV, FLAC, OGG, M4A), video (MP4, WebM), NDJSON, XML, YAML, SVG, and files detected as Python or JavaScript source. Attaching them is not refused; ingestion fails asynchronously, the file status becomes failed and last_error.code is unsupported_file. Encrypted PDF or Office files also fail during ingestion (invalid_file). Empty files, ZIP archives and other binary files are rejected by the file service at upload.
Develop measurements on 2026-10-11: text and documents finished ingestion in about 4–21 seconds; a single image took about 4–11 seconds, and one PNG took about 87 seconds while 7 files were ingested at once.
HTTP errors
| HTTP | code | Action |
|---|---|---|
| 400 | INVALID_PARAMS / LIMIT_EXCEEDED | Correct parameters or reduce the request size. |
| 401 | UNAUTHENTICATED | Check the API Key; compatible code is null. |
| 404 | VECTOR_STORE_NOT_FOUND / FILE_NOT_FOUND / FILE_NOT_IN_STORE / BATCH_NOT_FOUND / CHUNK_NOT_FOUND | Check the resource ID and its store. |
| 409 | VECTOR_STORE_INVALID_STATE / FILE_INVALID_STATE | Check deletion, expiry or file processing state. |
| 413 | PAYLOAD_TOO_LARGE | JSON request exceeds 1 MB; compatible code can be null. |
| 429 | RATE_LIMITED | Retry later. |
| 500 | — / null | Internal error; retain the request ID and retry later. |
| 501 | NOT_IMPLEMENTED | Operation is not implemented. |
| 503 | PROVIDER_UNAVAILABLE | Processing is temporarily unavailable; retry later. |
Native errors normally use error.code, error.message and error.details. Compatible errors use error.message, error.type, error.param and error.code; the official SDK raises the corresponding HTTP error class. Unknown routes can omit code, 401 can omit details and malformed URL encoding can produce HTML.
Asynchronous failures
A file with status failed reports last_error.code: unsupported_file for unsupported parsing, invalid_file for invalid/empty/encrypted content, or server_error for processing failure or timeout. The estimated-token limit currently maps to invalid_file; its over-limit behavior has not been measured. Check file status after a successful attachment. Retry is available through the native API for failed files; successful retry after failure was not covered in the measurements.
Actual expiry and purge after 7 days have not been observed end to end. No reliable per-service requests-per-second limit was established by the tests.