{"record":{"id":"8524444dda591c68","repo":"openclaw/openclaw","slug":"deepinfra-video-generation-failed","errorCode":null,"errorMessage":"DeepInfra video generation failed","messagePattern":"DeepInfra video generation failed","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"extensions/deepinfra/video-generation-provider.ts","lineNumber":271,"sourceCode":"        dispatcherPolicy,\n      });\n      let submitted: DeepInfraVideoJob;\n      try {\n        await assertOkOrThrowHttpError(response, \"DeepInfra video generation failed\");\n        submitted = await readProviderJsonResponse<DeepInfraVideoJob>(\n          response,\n          \"DeepInfra video generation failed\",\n        );\n      } finally {\n        await release();\n      }\n\n      const jobId = normalizeOptionalString(submitted.id);\n      if (!jobId) {\n        throw new Error(\"DeepInfra video generation response missing job id\");\n      }\n      if (submitted.status === \"failed\") {\n        throw new Error(\n          normalizeOptionalString(submitted.error) ?? \"DeepInfra video generation failed\",\n        );\n      }\n\n      const completed =\n        submitted.status === \"succeeded\"\n          ? submitted\n          : await pollProviderOperationJson<DeepInfraVideoJob>({\n              url: `${baseUrl}/videos/${encodeURIComponent(jobId)}`,\n              headers,\n              deadline,\n              defaultTimeoutMs: DEFAULT_HTTP_TIMEOUT_MS,\n              fetchFn: fetch,\n              maxAttempts: MAX_POLL_ATTEMPTS,\n              pollIntervalMs: POLL_INTERVAL_MS,\n              requestFailedMessage: \"DeepInfra video status request failed\",\n              timeoutMessage: `DeepInfra video generation job ${jobId} did not finish in time`,\n              allowPrivateNetwork,","sourceCodeStart":253,"sourceCodeEnd":289,"githubUrl":"https://github.com/openclaw/openclaw/blob/01804a75319da4b69c9ab98ceaa30477e22b8c0b/extensions/deepinfra/video-generation-provider.ts#L253-L289","documentation":"Thrown in generateVideo (extensions/deepinfra/video-generation-provider.ts:271-273) immediately after submission when submitted.status === 'failed'. The thrown message is normalizeOptionalString(submitted.error) if present, otherwise this exact fallback 'DeepInfra video generation failed'. So this literal message appears only when the job failed AND the error field is empty/null/missing. (The same fallback string is also used in the polling getFailureMessage path.)","triggerScenarios":"POST /videos returns a job object with status 'failed' and no (or empty) error string. Or, during polling, the job transitions to 'failed' with no error detail.","commonSituations":"DeepInfra rejected the prompt (content policy), the model is unavailable, quota/rate limit expressed as a failed job, or invalid parameters — but the API omitted the error detail field.","solutions":["Inspect the full failed job payload via debug logging for any detail field the normalizer missed.","Simplify the prompt and retry to rule out content-policy rejection.","Verify the model id is valid and available on your DeepInfra account.","Check DeepInfra account quota/billing status."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  const result = await provider.generateVideo(req);\n} catch (err) {\n  if (err instanceof Error && /video generation failed/i.test(err.message)) {\n    // DeepInfra reported a failed job; inspect prompt/model/quota.\n  }\n  throw err;\n}","preventionTips":["Treat any 'failed' job status as a hard failure; surface the upstream error if present.","Log the complete job object (minus credentials) when a job fails with no error detail.","Validate prompt/model against DeepInfra's content policy and supported model list before submitting."],"tags":["deepinfra","video-generation","api-error","job-failed"],"backgroundTag":null,"analyzedSha":"01804a75319da4b69c9ab98ceaa30477e22b8c0b","analyzedAt":"2026-08-12T04:37:58.197Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}