Skip to content

internal_error

HTTP 500. Nothing about your request explains this. It is ours.

500 Internal Server Error
{
"error": {
"type": "internal_error",
"message": "Something went wrong on our side. The request id is in the response headers.",
"docs_url": "https://galleyrender.com/docs/errors/internal_error"
}
}

Three raise sites:

  • An unhandled exception anywhere in the request path. The error handler catches anything that is not already a typed API error, logs it with the path and stack, and returns this envelope. The details never reach you — internal messages are not leaked into responses.
  • An unconfigured deployment. The onboarding routes answer this way when they are not set up on the environment they are running on. You should not see it against the production API.
  • The MCP server failing before it reached the API. A tool call that breaks on the MCP side comes back in this same shape, with a message naming the tool.

Note the difference from render_failed, which is also a 500: that one means the document could not be produced and tells you why. This one means we do not yet know why.

Nothing at your end. Capture the x-request-id response header — it is on every response, and it is echoed from your own x-request-id if you send one — and the UTC timestamp.

Keep the request id
curl -sS -D headers.txt https://api.galleyrender.com/v1/render \
-H "Authorization: Bearer $GALLEY_API_KEY" \
-H 'content-type: application/json' \
-d '{"template":"invoice@1","format":"pdf","data":{}}' > body.json
grep -i '^x-request-id' headers.txt

If it persists, send that id to support@galleyrender.com. Do not include your API key.

Retry once, after a short delay. If a second attempt fails the same way, stop and report it — a retry loop against a genuine outage helps nobody.