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

  1. Read the Prodia provider metadata / jobResult surfaced by the SDK (and Prodia dashboard) to check the job's status and error fields.
  2. Retry the generation with a modified prompt in case content filtering or a transient job failure caused the empty output.
  3. Verify your Prodia account has sufficient credits/quota for video generation.
  4. 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

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


AI-assisted analysis of vercel/ai@69428b1f8b (2026-08-30). Data as JSON: /api/errors/64dbc8855b5d9472. Report an issue: GitHub.