From 2a2151d7dd19faa1e4d43d49540729dab33a8eed Mon Sep 17 00:00:00 2001 From: SnapOtter Date: Sat, 13 Jun 2026 14:58:16 +0800 Subject: [PATCH] fix(doc-engine): treat qpdf exit code 3 (warnings) as success, not failure --- packages/doc-engine/src/qpdf.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/doc-engine/src/qpdf.ts b/packages/doc-engine/src/qpdf.ts index d2db93cb..7bd0417f 100644 --- a/packages/doc-engine/src/qpdf.ts +++ b/packages/doc-engine/src/qpdf.ts @@ -32,7 +32,10 @@ export function runQpdf(args: string[], timeoutMs = 30_000): Promise { if (settled) return; settled = true; clearTimeout(timer); - if (code === 0) resolvePromise(out); + // qpdf exit codes: 0 = success, 2 = errors (real failure), + // 3 = warnings only (file processed successfully despite minor + // structural quirks common in web-generated and scanned PDFs). + if (code === 0 || code === 3) resolvePromise(out); else reject(new Error(`qpdf exited ${code ?? signal}: ${err.slice(-1000) || out.slice(-1000)}`)); });