{
  "filename": "02-model-front.png",
  "status": "failed",
  "stage": "kie_failed",
  "attempt": 3,
  "maxAttempts": 3,
  "timeoutMs": 300000,
  "retryPolicy": "Only this failed image will be retried while generation attempts remain. QA repair attempts are counted separately.",
  "role": "",
  "promptLength": 5930,
  "promptPreview": "Image role: LEFT SIDE MODEL USE\nUse the uploaded reference photos only as the exact product reference.\nPreserve the same wig colour, length impression, hairstyle texture, volume, hairline or headband/accessory placement, cap details and natural use effect.\nDo not invent a different hairstyle, length, colour, fringe/bangs, headband, cap, or accessory.\nThis product is not a headband wig; do not add a headband, black rear band, cap band, scarf, or headband-wear claim.\nNo watermark, no Chinese text, no supplier logo, no marketplace badge.\nSquare 1:1 Takealot-ready ecommerce image.\nReference-product facts:\n- Product: 全头套假发 / Full Wig\n- Length: 14inch\n- Colour: extracted source-photo palette: #151312 (black) / #B48465 (caramel brown) / #B79277 (caramel brown) / #9F7C63 (caramel brown) / #93654C (warm brown) / #634B3E (warm brown); user colour reference only: 淡金色\n- Material: 高温丝 / High-Temp Fibre\n- Key details: 14 Inch visual length from source photos; Black + Caramel Brown + Warm Brown colour preserved from uploaded photos; 水波纹 / Water Wave preserved from source photos; source-photo cap/style construction; High-Temp Fibre hair material\n\n- Uploaded detail reference photos: O1CN01i7MS2S1aD",
  "startedAt": "2026-06-23T10:34:30.913Z",
  "updatedAt": "2026-06-23T10:34:31.104Z",
  "taskId": "",
  "error": "Error: KIE createTask returned no taskId: {\"code\":500,\"msg\":\"File type not supported\",\"data\":null}\n    at createKieImageTask (file:///opt/shangpin-workbench/scripts/process-pending-openai.mjs:1668:22)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async generateImage (file:///opt/shangpin-workbench/scripts/process-pending-openai.mjs:1762:16)\n    at async runOneImage (file:///opt/shangpin-workbench/scripts/process-pending-openai.mjs:2436:24)\n    at async Promise.all (index 1)\n    at async processJob (file:///opt/shangpin-workbench/scripts/process-pending-openai.mjs:2453:26)\n    at async main (file:///opt/shangpin-workbench/scripts/process-pending-openai.mjs:2587:7)",
  "failedAt": "2026-06-23T10:34:31.103Z"
}