internal_error
HTTP 500. Nothing about your request explains this. It is ours.
{ "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" }}Why this happens
Section titled “Why this happens”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.
How to fix it
Section titled “How to fix it”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.
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.jsongrep -i '^x-request-id' headers.txtIf it persists, send that id to support@galleyrender.com. Do not include your API key.
Does retrying help?
Section titled “Does retrying help?”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.