# X_SCRAPE_PDF_BUSY

## Means

every pdf() render slot stayed busy past the queue deadline

## Typical cause

more renders arrived at once than the renderer launches browsers for (maxConcurrent, default 2), and this one waited out queueTimeoutMs — each Chrome holds 150-300 MB, so the bound keeps a burst from exhausting the web role memory

## Fix

`pdf({ renderer: chromePdfRenderer({ maxConcurrent: 4 }) })` — only on a host with the memory for it; a caller retries after the Retry-After it was answered

[Scraping](/error-codes#scraping)
