> ## Documentation Index
> Fetch the complete documentation index at: https://developers.gonitro.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Limits and errors

> File size and page limits, throttling, and error handling for the Nitro PDF Services Zapier app.

## Platform limits

The app uploads files directly to Nitro, so the standard PDF Services request limits apply:

| Limit | Value |
| - | - |
| Maximum file size | 100 MB per request, across all files in a multi-file action |
| Maximum pages | 500 per individual document |
| Files per request | 25 for **Merge PDFs** (the only action with an open-ended list) |
| File retention | Input and output files are deleted about 15 minutes after the operation completes; download URLs expire in the same window |

Zapier applies its own limits on top, which are usually the tighter constraint: task timeouts and
maximum file sizes vary by Zapier plan. A very large PDF can fail in Zapier before it ever reaches
Nitro.

## Errors raised by the app

Some inputs are validated before any request leaves Zapier. These fail the step immediately with
an `InvalidInput` error:

| Action | Condition |
| - | - |
| **Merge PDFs** | The file list is empty, or has more than 25 files |
| **Split PDF** | **Page Indices (JSON)** is not valid JSON, or is not a non-empty array of arrays |
| **Rotate PDF** | More than one rotation amount, but the count does not match **Page Indices** |
| **Unprotect PDF** | Neither Owner Unlock Key nor User Unlock Key was supplied |
| **Add Fillable Form Fields** | The five lists have different lengths, or a bounding box does not have four numbers |
| **Fill PDF Form** | Both a **Form Data File** and inline **Field Mappings** were supplied |

An `UnexpectedNitroResponse` error means Nitro returned a success status but no output file. Retry
the step; if it repeats, [contact support](https://www.gonitro.com/support) with the Zap run ID.

## Errors returned by Nitro

<AccordionGroup>
  <Accordion title="400 — Bad request">
    The request was malformed, or the document cannot be processed as submitted. The most common
    cause in a Zap is an **Input Format** that does not match the uploaded file — the app does not
    detect the format for you. Also returned when the input PDF is password protected (run
    **Unprotect PDF** first) or a **Fill PDF Form** JSON data file is a flat object rather than a
    list of field/value pairs.
  </Accordion>

  <Accordion title="401 — Unauthorized">
    The access token was rejected. The app refreshes tokens automatically, so a persistent `401`
    means the credentials themselves are no longer valid — reconnect the app in **My Apps**. See
    [Authentication](/docs/integrations/zapier/authentication).
  </Accordion>

  <Accordion title="413 — Content too large">
    The file exceeds Nitro's size limit. Compress or split it earlier in the Zap.
  </Accordion>

  <Accordion title="415 — Unsupported media type">
    The file format is not supported for that operation — for example a data file for
    **Fill PDF Form** that is not CSV, JSON, XFDF or FDF.
  </Accordion>

  <Accordion title="422 — Unprocessable entity">
    The request was well-formed but could not be carried out on this document — a page index
    beyond the last page, a redaction box outside the page bounds, an invalid regular expression,
    or an unknown field name with **Strict Mode** on. Check the values against the document's real
    page count with **Get PDF Properties**.
  </Accordion>

  <Accordion title="429 — Too many requests">
    Rate limited. Nitro returns a `extensions.retryAfter` value in seconds; Zapier's automatic retry usually
    clears it. See [Throttling](#throttling).
  </Accordion>

  <Accordion title="500 — Internal server error">
    A Nitro-side failure. Zapier will retry automatically; if it persists,
    [contact support](https://www.gonitro.com/support) with the Zap run ID and the time.
  </Accordion>
</AccordionGroup>

For the full catalogue of Nitro error types and their payloads, see
[API error codes](/docs/build-nitro/errors).

## Throttling

Nitro enforces per-account rate limits on every endpoint and returns `429` with an
`extensions.retryAfter` value (in seconds) when they are hit. There is no Zapier-specific limit on
top of that — the "100 calls per connection per 60 seconds" figure you may see elsewhere is the
Power Automate connector's policy, not Nitro's. A Zap processing a large backlog — for example
after a **Looping by Zapier** step over many files — can still hit the account limit. Keep loops
small, or split large batches across scheduled runs.

## Handling failures

Zapier retries failed steps automatically and puts persistently failing runs into the Zap's error
queue. For anything unattended, turn on error notifications for the Zap so a failed document is
noticed rather than sitting in the queue.
