Hi Vercel team,
We run video generation through AI Gateway's asynchronous job API (experimental_startVideo + experimental_getVideoStatus). For google/veo-3.1-generate-001 at 4K, the gateway reports a job as "completed" but returns an empty videos array whenever the rendered file is larger than roughly 16 MiB. The job's providerMetadata carries a flag that appears in no documentation:
result: { inlineTooLarge: true, expired: true, expiredAt: }
The generation finished at Google and the job carries a gateway generation id, so it was billed, but the output is unrecoverable through any API we can find.
ENVIRONMENT
- ai 7.0.82, /gateway 4.0.67, Node 24.19, API key authentication
- Team: API key:
REQUEST SHAPE (identical on every affected job)
- model: google/veo-3.1-generate-001
- prompt: { image: , text: }
- aspectRatio: "9:16", resolution: "3840x2160", duration: 6, generateAudio: false
- idempotency-key per job; status polled every ~6 s with experimental_getVideoStatus
AFFECTED JOBS (all "completed", videos: [], warnings: [], times in UTC)
- job_4JT9B4B2SQBFN5QZC6FZN8X0QF started 2026-09-03 00:41:46 completed 00:48:01 gen_01M1JBDYXYJ0Q1QJQ859BY50X0
- job_15VMJC859DS4T2DDCHAQT7TNBC started 2026-09-03 00:41:46 completed 00:48:34 gen_01M1JBDYYNZ4Z8V9JYQPTJRK9J
- job_68M78EC73RVNDWQBD5XKBJ37WA started 2026-09-03 00:41:46 completed 00:48:06 gen_01M1JBDZ9FB4MC8X02M709VGZW
- job_2B31C6K6ETYK4W8EF8K4EWB311 started 2026-09-03 00:50:42 completed 00:57:32
- job_6QKPBBCF960RGC5NE4RGD7VERH started 2026-09-03 00:50:42 completed 00:57:09
- job_09M1X5ERDDRWM7K1E1KD4E02JG started 2026-09-03 00:50:42 completed 00:57:28
- job_13SWDZ26JKKK2JPYESBZ1KAH0T started 2026-09-03 00:50:42 completed 00:56:50
DELIVERED JOBS, same model and parameters, minutes apart (result: { delivery: "inline" }, videos[0].type "base64")
- job_5ZW2AZV286Q1KFSPDXBKS76JT4 15.7 MB (2026-09-02 23:49 to 23:56)
- job_4B8P210EMATYA76BH8CRNE6QM4 14.7 MB (00:41 to 00:48)
- job_5JPFF9N4ZVE9M8YKR1WC3HKJQS 15.1 MB (00:41 to 00:48)
- job_5GR1EVC3VTF6F0RZKY72BV75Q3 13.0 MB (00:50 to 00:56)