fix(doc-engine): treat qpdf exit code 3 (warnings) as success, not failure

This commit is contained in:
SnapOtter
2026-06-13 14:58:16 +08:00
parent 82fb798142
commit 2a2151d7dd
+4 -1
View File
@@ -32,7 +32,10 @@ export function runQpdf(args: string[], timeoutMs = 30_000): Promise<string> {
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)}`));
});