Skip to main content
The VLM Run Gateway returns OpenAI-compatible error bodies for most failure modes. Errors are wrapped in a detail object when returned by FastAPI:
Rate limit errors use a top-level error object instead (see Rate Limits).

HTTP status codes

Common errors

Capability violation (400)

Returned when the request content does not match the model’s declared capabilities. For example, sending a document_url to a model that only accepts images, or sending multiple images to a single-image OCR model.
Check each model’s capabilities on GET /v1/openai/models or the Models page before sending a request.

Invalid document (400)

Returned when a document_url points to a file that is not a valid PDF, exceeds size limits, or cannot be decoded.

Invalid video (400)

Returned when a video_url on the chat-completions video path points to a file that cannot be decoded (unsupported container, corrupt stream, or a URL that does not resolve to a video). The Gateway returns a 400 with error.type = "invalid_request_error" rather than a 500.

Model not found (404)

Returned when the model field does not match any registered model or alias. List available models with GET /v1/openai/models.

Rate limit exceeded (429)

Returned when a per-tier request quota is exhausted. See Rate Limits for bucket sizes and tier attribution.
Anonymous callers receive a message pointing to app.vlm.run to sign up for an API key. Authenticated callers receive a generic rate limit message.

Internal server error (500)

Uncaught exceptions return a sanitized body with no stack traces or internal paths. Every response includes an x-request-id header. On sanitized 500 errors, the same id is also returned as error.request_id in the JSON body. Include either value when contacting support@vlm.run.
You may send an x-request-id request header to supply your own correlation id; the Gateway echoes it on the response. When the header is omitted, the Gateway mints a new id.

Getting help

When reporting an issue, include:
  • The x-request-id response header (or error.request_id on sanitized 500 responses)
  • The HTTP status code and response body
  • The model value and content part types you sent
See also Rate Limits and the Chat Completions API reference for retry-relevant request parameters.