vercel/ai · error · Error
Prodia multipart response missing job part
Error message
Prodia multipart response missing job part
What it means
The multipart body was parsed successfully, but no part carried content-disposition name="job" containing the JSON job result. The Prodia video model requires this part to attach job metadata (used in providerMetadata) to its result, so it throws when the job part is absent.
Source
Thrown at packages/prodia/src/prodia-video-model.ts:222
if (contentDisposition.includes('name="job"')) {
const jsonStr = new TextDecoder().decode(part.body);
jobResult = await parseJSON({
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 }> {View on GitHub (pinned to 69428b1f8b)
Solutions
- Capture and inspect the raw multipart body (parts and their content-disposition headers) to confirm the job part is genuinely missing.
- Update @ai-sdk/prodia to the latest version so parsing matches the current Prodia response format.
- Regenerate any mocked or recorded fixtures from a fresh real Prodia response.
- Contact Prodia support if a genuine request reproducibly omits the job part.
Defensive patterns
Strategy: try-catch
Try / catch
try {
const video = await generateVideo({ model: prodia.video(modelId), ... });
} catch (error) {
if (error instanceof Error && error.message === 'Prodia multipart response missing job part') {
// record raw multipart parts; likely provider format change or stale fixture
}
throw error;
} Prevention
- Use the latest @ai-sdk/prodia release.
- Refresh test fixtures from live API captures regularly.
- Do not mutate part headers (content-disposition) in proxies.
- Verify against a direct Prodia call when the SDK errors.
When it happens
Trigger: A Prodia video doGenerate call got a well-formed multipart body, but the parts contained only an output video (or unrelated parts) and no name="job" part — e.g. a provider-side format change or a truncated/stale recorded fixture.
Common situations: Prodia video API contract change on beta endpoints; mocked/test fixtures recorded from an older response shape; middleware mangling content-disposition headers of parts.
Related errors
- Prodia response missing multipart boundary in content-type:
- Prodia response missing multipart boundary in content-type:
- Prodia multipart response missing job part
- Prodia multipart response missing output video
- Video generation timed out after ${timeoutMs}ms.
AI-assisted analysis of vercel/ai@69428b1f8b (2026-08-30).
Data as JSON: /api/errors/3a0350b69178ba78.
Report an issue: GitHub.