vercel/ai · error · Error
Prodia multipart response missing output video
Error message
Prodia multipart response missing output video
What it means
The multipart response contained the job JSON part but no output part carrying video bytes. The Prodia video model must return the generated video data, so when no "output" part (and no video/* part) is present in the multipart body it throws this error.
Source
Thrown at packages/prodia/src/prodia-video-model.ts:225
text: jsonStr,
schema: zodSchema(prodiaJobResultSchema),
});
} else if (contentDisposition.includes('name="output"')) {
videoBytes = part.body;
if (partContentType.startsWith('video/')) {
videoMediaType = partContentType;
}
} else if (partContentType.startsWith('video/')) {
videoBytes = part.body;
videoMediaType = partContentType;
}
}
if (!jobResult) {
throw new Error('Prodia multipart response missing job part');
}
if (!videoBytes) {
throw new Error('Prodia multipart response missing output video');
}
return {
value: { jobResult, videoBytes, videoMediaType },
responseHeaders,
};
};
}
async function resolveVideoFileData(
file: NonNullable<
Parameters<NonNullable<VideoModelV4['doGenerate']>>[0]['image']
>,
abortSignal?: AbortSignal,
): Promise<{ bytes: Uint8Array; mediaType: string }> {
if (file.type === 'file') {
const data =
typeof file.data === 'string'View on GitHub (pinned to 69428b1f8b)
Solutions
- Read the Prodia provider metadata / jobResult surfaced by the SDK (and Prodia dashboard) to check the job's status and error fields.
- Retry the generation with a modified prompt in case content filtering or a transient job failure caused the empty output.
- Verify your Prodia account has sufficient credits/quota for video generation.
- Update @ai-sdk/prodia in case a newer provider response format needs different parsing.
Example fix
// before: ignoring job status
const { video } = await generateVideo({ model: prodia.video('...'), prompt });
// after: catch and inspect job status
try {
const { video } = await generateVideo({ model: prodia.video('...'), prompt });
} catch (e) {
console.error('No video returned; check Prodia job status/credits', e);
}
Defensive patterns
Strategy: try-catch
Try / catch
try {
const { video } = await generateVideo({ model: prodia.video(modelId), prompt });
} catch (error) {
if (error instanceof Error && error.message === 'Prodia multipart response missing output video') {
// job likely failed: check Prodia job status, credits, and content policy
}
throw error;
} Prevention
- Check the job status in Prodia provider metadata or dashboard after failures.
- Ensure sufficient credits/quota before submitting video jobs.
- Sanitize prompts to reduce content-policy rejections.
- Implement one retry with a modified prompt for transient job failures.
When it happens
Trigger: A Prodia video doGenerate call returned multipart with a name="job" part, but no name="output" part or video/* part — typically when the generation job finished without producing a video (job failure, content policy rejection, empty result).
Common situations: Job completed with a failed/error status embedded in the job JSON while the SDK still expected video bytes; prompt blocked by safety filters; Prodia-side storage/CDN issue preventing the video from being attached; insufficient credits producing an empty output.
Related errors
- Prodia response missing multipart boundary in content-type:
- Prodia multipart response missing job part
- Prodia response missing multipart boundary in content-type:
- Prodia multipart response missing job part
- No video generated.
AI-assisted analysis of vercel/ai@69428b1f8b (2026-08-30).
Data as JSON: /api/errors/64dbc8855b5d9472.
Report an issue: GitHub.