ERR_PDF_CORRUPT β PDF Corrupt
HTTP Status: 400 Retryable: No Automatic retry: None. A corrupt file will fail consistently.
What the User Sees
The PDF file appears to be corrupt or invalid. (ERR_PDF_CORRUPT)
What Causes This Error
The uploaded file does not have valid PDF structure. The preflight check in services/pdf-preflight.ts uses unpdf/PDF.js to parse the document. Corrupt files fail during PDFDocument.load() when the parser cannot find valid PDF headers, cross-reference tables, or object structures.
Common causes include: incomplete download (the file transfer was interrupted before completion), a non-PDF file that was renamed with a .pdf extension (e.g., a Word document or image renamed to .pdf), the file was damaged during email attachment encoding/decoding, the PDF was created by a buggy or non-standard PDF generator, or the file was corrupted on disk.
The preflight check is performed before any credits are charged or conversion work begins, so users will not lose credits on corrupt files.
Resolution Steps
For Users
- Re-download the PDF from the original source. If the download was interrupted, the file may be incomplete.
- Try opening the file in Adobe Acrobat Reader or Chromeβs built-in PDF viewer to verify it is a valid PDF.
- If the file opens in a PDF viewer but fails here, try re-exporting it from the original application (e.g., βPrint to PDFβ or βExport as PDFβ).
- If the file was received as an email attachment, ask the sender to share it via a file sharing service instead, as email encoding can sometimes corrupt binary files.
- Verify the file is actually a PDF and not another format with a renamed extension.
For Administrators
- No admin action is needed for this error β it is a document quality issue.
- If a specific file is reported as failing when the user believes it is valid, request the file for manual testing. Try loading it with
pdf-liborPDFDocument.load()locally to reproduce. - If many users report this error for files from the same source, the source system may be generating non-standard PDFs. Consider adding more lenient parsing options to the preflight check.
- The preflight code is in
services/pdf-preflight.tsβ check the error details logged for the specific parse failure.
Related Errors
- ERR_PDF_PASSWORD_PROTECTED β PDF is encrypted, not corrupt
- ERR_PDF_TOO_LARGE β PDF exceeds size limits