fix(delivery): stop the 422 retry loop on failed delivery items
Deploy / deploy (push) Successful in 6m37s
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:
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user