fix(delivery): stop the 422 retry loop on failed delivery items
Deploy / deploy (push) Successful in 6m37s

A FAILED delivery item never sets fileCount/totalBytes, and the worker's
Dictionary-based JSON payload serializes those as explicit nulls (the
WhenWritingNull option only suppresses nulls on POCO properties, not
dictionary values). The server's schema allowed the fields to be omitted
but not null, so the report was permanently rejected with 422 - and the
worker only ever treated 409/404 as terminal, so it retried the same
malformed payload forever across restarts.
This commit is contained in:
twotalesanimation
2026-08-21 12:07:30 +02:00
parent df219d7932
commit 82dfaee56f
2 changed files with 8 additions and 4 deletions
+2 -2
View File
@@ -437,8 +437,8 @@ export const deliveryReportSchema = z.object({
status: z.enum(["COPIED", "VERIFIED", "FAILED"]),
exrPath: z.string().max(1000).optional().nullable(),
movPath: z.string().max(1000).optional().nullable(),
fileCount: z.number().int().nonnegative().optional(),
totalBytes: z.number().nonnegative().optional(),
fileCount: z.number().int().nonnegative().optional().nullable(),
totalBytes: z.number().nonnegative().optional().nullable(),
checksum: z.string().max(200).optional().nullable(),
linkMode: z.enum(["hardlink", "copy"]).optional().nullable(),
errorMessage: z.string().max(2000).optional().nullable(),