The n8n node
Errors
Every failure path returns a named code, a plain-language message, and a requestId — no bare 500s, nothing swallowed. Here is every code and its fix.
Engine error codes
The render engine returns exactly one of these. In n8n the node surfaces the code and message; the same envelope is returned to any HTTP client.
| Code | HTTP | Meaning | How to fix |
|---|---|---|---|
UNAUTHORIZED | 401 | The API key is missing or invalid (also when the engine has no keys configured — it fails closed). | Check the pdfmill credential’s API Key and Base URL. |
QUOTA_EXCEEDED | 402 | The monthly document cap for your plan is reached. | Upgrade the plan to raise the cap, or wait for the next period. Never a silent overage. |
INVALID_REQUEST | 400 | Malformed request: bad JSON, a schema violation, both template and html (or neither), or raw HTML that fails to compile as Handlebars when sent with data. | Check the Data and the template/HTML. Send exactly one of template or html. |
TEMPLATE_NOT_FOUND | 404 | No template with that id exists for your key. | Pick a template from the dropdown, or fix the id. |
PAYLOAD_TOO_LARGE | 413 | The request body is over the payload limit (2 MB). | Reduce the data you send. |
OUTPUT_TOO_LARGE | 422 | The rendered document is over the output limit (20 MB) or exceeds the page cap (50 pages). | Simplify the template or data, or split the document. |
RENDER_TIMEOUT | 504 | The render exceeded the wall-clock limit (30 s) and was killed; the engine’s Chrome instance is replaced automatically. | Simplify the template, reduce the data, or shrink large images. |
RENDER_FAILED | 500 | A named catch-all for an engine-side failure — the message is preserved, never swallowed. | Check the template/HTML and data; quote the requestId to support. |
BUSY | 429 | Rate-limited (per-key limit) or the render queue is at capacity. | Retry with backoff. |
Node-only codes
These two are raised by the node before it reaches the engine, so they have no HTTP status.
| Code | Meaning | How to fix |
|---|---|---|
MISSING_CREDENTIAL | No API key or Base URL is configured on the credential. | Complete the pdfmill credential (API Key + Base URL). |
ENGINE_UNREACHABLE | The node could not reach the engine at the Base URL (network/DNS/TLS). | Check the Base URL and that the engine is reachable from n8n. |
The error envelope & requestId
Every error — over HTTP or surfaced in n8n — carries a requestId (also returned as the x-request-id response header). Quote it when you contact support: it identifies the exact render in the engine's logs.
error response
{
"error": {
"code": "TEMPLATE_NOT_FOUND",
"message": "no such template: invioce",
"requestId": "7f3c1e0a-9b2d-4c6a-8e11-2a4d6f8b0c31"
}
}Batch behavior
With Continue On Fail on, a failing item does not stop the batch: it emits
{ success: false, error, code, requestId } while the healthy items still render. See operations & fields.