视频推理报 500:上传成功、抽帧成功,只有生成崩
10 月 31 日,Google AI Developers Forum 上一条帖子把一个故障拆得很干净。用户 Oleksandr_Peka 在自己的付费 Pro 账号上做视频推理时,遭遇 GenerateContent 持续返回 500 Internal Server Error。之前他能常规处理 10 万 token 以上的大视频,现在连 4 分钟、2.6 万 token 的视频都 100% 失败。
他自己用 DevTools 逐段隔离,结果是:
files?uploadType=multipart → 200 OK (文件上传正常)
StreamExtractVideoFrames → 200 OK (视频帧提取正常)
CountTokens → 200 OK (26,266 tokens 计数正常)
GenerateContent → 500 (派发即崩,无返回体)
前三个请求都成功,第四个失败 —— 这条线索本身就说明了故障边界在”生成”这一步,而不在上传、不在解析、不在计费。
最有说服力的是跨账号对照:同一个视频文件、同样的浏览器,换成免费账号提交就能正常生成。发帖人还测了空 System Instructions、关掉 Search Grounding、关掉 URL Context、Medium 和 Low 两种思考等级,并在 Firefox、Chrome、Edge 三个浏览器里复现,结果完全一致。影响端点记录为 alkalimakersuite-pa.clients6.google.com/.../GenerateContent,受影响模型包括 gemini-3.8-flash 和 gemini-3.1-pro-preview。
也就是说,这不是你视频的问题,也不是你调用方式的问题。
为什么现在值得看:最新一条是 10 月 31 日,也就是两天前,而它是付费 Pro 账号独有的 —— 同一个文件换免费账号就能跑。这种”按账号分层”的故障最难自己定位,因为你的所有测试都在付费环境里做,如果不刻意做跨账号对照,会一直以为是自己参数配错了。而据这些帖子的时间跨度看,视频输入这条路上的 500 从 2024 年到 2026 年换着花样出现过,只是每次的失败点不同。
500 到底意味着什么
500 是”服务器内部错误”的通用码,本身不告诉你原因。但这份诊断把可能性收窄了不少:上传通、抽帧通、CountTokens 通,说明服务端确实完整收到了视频、也确实解析出了帧和 token 数。既然都算得出 26,266 个 token,说明视频是有效的、没被截断、也不是格式不支持。
失败发生在把这些输入交给模型推理的那一步。有几种可能,公开信息只能列出来但排不了序:
- 付费账号走的推理资源池与免费账号不同,可能是资源分配或路由策略上的差异 —— 同样是”正常”路径,落到不同后端就不是同一回事了;
- 视频输入在推理引擎内部触发了某个边界条件(长度、帧率组合、分辨率与时长相乘超阈值之类),而免费账号的池子恰好绕开了;
- 也可能是该端点针对付费账号的某个配置或回归。
注意最后一条:帖子标题里”回归(regression)”这个词是发帖人自己的判断 —— 他此前是能用的。这跟”付费账号配额更低”是两回事,配额问题不会只发生在生成这一步。
关键:这是至少四个不同的问题,都叫 500
把同期和历史的相关报告摊开看,会发现一件事:“视频推理报 500″这句话底下至少藏着四种不同的现象。 它们都是用户自报、都没有官方定论,所以这是一份分诊用的假设清单,不是官方分类 —— 但处置方式确实不同,混在一起就只能反复试错。
先说清楚证据的性质:下面四类现象的每一条证据全部是用户自报 —— 论坛帖,不是官方公告。不过其中至少有一条出现了疑似官方的回应:2026 年 10 月 30 日,Jon_Matthews 在图片上传那帖下回复 “This could be related to an issue we just pushed a fix for. Probably worth trying again now.”。证据材料里我没找到任何能证明其身份的信息 —— 论坛也没有公开标注谁属于 Google,所以只能按回复口吻判断”疑似官方”,不当成已确认。若这条属实,意思是官方确实在推修复,只是以”试试看”的形式给出,没有配套公告说明影响哪些配置。所以下文能给出的是”现象分类”和”判定方法”,不是官方结论。判断某个具体故障是不是这一类,还是要靠你手上的隔离结果去对。
类型一:inline video,用法问题,自己能解决。
2024 年 8 月,一位 Swift SDK 用户报告带视频就 500。帖子的第二条回复(来自另一位社区用户,不是官方)指出这是自当年 5 月 16 日起就存在的已知问题:视频内容不能以 inlineData 形式提交,那样”保证会返回 500″;必须改用 File API。发帖人自己也确认,Firebase Extension 和 Vertex AI 走文件上传就正常,因为它们内部用的就是 File API。
这条”根因”目前只有社区来源,官方文档里查不到 —— 但发帖人与回复者互相验证过(一个报 500、一个指出改用 File API 后正常),可信度不低。真要依赖这条结论,建议自己在今天的 SDK 上照着跑一遍,见后文的最小复现模板。
这条的价值在于它给了判定方法:如果你传的是 inlineData,500 是预期行为,不是服务端故障。改成 File API 就行。
类型二:挂在上传/计数阶段,生成还没开始。
2026 年 10 月 1 日,一位用户用 Google AI Ultra 账号在 AI Studio 网页端报告:同一模型、同一把付费 key,纯文本请求成功,视频导入和上传却失败。他的首帖里,附件区显示 “Token count failed” 但 Run 按钮仍可点,点了之后返回 “An internal error has occurred”,浏览器控制台是 Error extracting video frames: RpcError: Http response at 400 or 500 level, error: , http status code: 500;视频预览能正常加载、时长显示正确。一个小时后他追加更新:换 Gemini 3.7 Flash 无效,用 High thinking 和同一把付费 key、经 Google Drive 选择器测了四段不同录像,四次全部在附件处理阶段就 “Token count failed” + HTTP 500,这批测试没有提交生成请求。这条帖的元数据是回复数 2、浏览数 156 —— 而那 2 条其实都是楼主自己的追加更新,没有他人回复。
同一类现象在更早一年也有独立报告:2025 年 5 月 3 日,Gang_WU 报告 AI Studio 网页端上传视频持续 500,错误信息同样是 Http response at 400 or 500 level, error: , http status code: 500。他排除了自己的问题 —— 测了至少 3 个不同视频,都小于 20 MB、时长 5~9 分钟、本地播放正常、标准 MP4 容器配 H.264 与 AAC;又试了 Chrome 标准模式、隐身模式、指纹浏览器。那一帖到 5 月 2 日起陆续有人跟帖说同样问题,累计 32 条回复、2,256 次浏览,是这几条里讨论最充分的一条。
把这两条放一起看有个有意思的细节:故障点会移动。2025 年 5 月,卡在上传;2026 年 10 月的首帖是抽帧 RPC 报错、计数失败但仍能点 Run,更新批次则彻底卡在附件处理、连生成都没提交。同一个”视频上传不工作”的表象,底层落在链路的不同环节上 —— 所以光看错误文案容易误判,得看它到底停在哪一步。
类型三:上传、抽帧、计数全通过,只有生成这一步崩。
就是开头那篇帖子的三连 200 加一个 500,派发即崩(帖子原文只写了”立即返回 500 Internal Server Error”,没有描述响应内容)。配合免费账号同一文件正常的跨账号对照,这一类指向付费路径 —— 但要说清楚:这两个对照都是他人做的,我没有付费账号,本文没有自行复现。
再补三条独立报告,其中两条直接关系到”怎么判断”。
2026 年 8 月 10 日,一位用户报告”Google AI Studio 里每一次视频上传都失败,报 Token count failed”,并明确说明图片正常、视频完全不行,且不是特定文件的问题 —— 他测过从 Meta Ads 广告库下载的视频、iPhone 直录的视频、重新编码过的视频。这条排除了”文件本身有问题”这一类猜测。
2026 年 5 月 22 日,一位付费 Gemini(Advanced/Business)订阅者报告反复遇到 “Token count failed”,最关键的一句是”明明一个 token 都还没用,全新 prompt、极短输入,计数器就是起不来”。这条直接说明计数失败与用量无关,也再次把问题指向付费侧。
2026 年 10 月 30 日,还有人用 Nano Banana 上传图片时撞上同一句 “Token count failed”。这说明这条报错不局限于视频 —— 排查时如果只盯着视频输入,可能找错方向。而且同一帖里另一位用户说,他新注册账号并充值 5 美元仍然一样 —— 这条至少对”Token count failed”这一类不分付费与免费。这跟前面几例”付费路径特有”的观察并不一致,说明错误文案相同不代表成因相同,分诊时不能只看文案。
另一个独立的跨账号对照,出现在 2026 年 5 月。
Satyendra 在论坛报告 “[Bug] Upgrading to Pro breaks Video/Multimodal generation”,做了和上面那位一样的 side-by-side:免费账号上传 .mp4、解析视频、生成响应全部正常;付费 Pro 账号同一个文件、同一个 prompt 立即崩溃,报 “An internal error has occurred.”。他还在网络面板里解码出了失败请求的具体错误体:[,[3,"per-user quota requests cannot use project-scoped features such as files"]],并据此判断是按用户计费(per-user quota)与项目级功能(File API)的作用域冲突。
这条的价值有两层。一是它把”付费路径”这个判断从单一用户的一次对照变成了两个互不相识的用户、在相隔五个月的两次对照;二是它给出了错误体的具体内容 —— 10 月 31 日那篇只写了”立即返回 500″、没有描述响应内容,而这里明确写着是配额作用域解析失败。同一类现象,错误码一个 500 一个 403;前者按发帖人描述没有可用的响应内容,后者则有明确的配额作用域错误文本。这也说明服务端在这条路径上的报错并不一致,光按状态码归类不够。
类型四:上传成功、推理几分钟后才 500。
2026 年 9 月 16 日,andrewwingert 用 Interactions API 提交一个 23 秒 MP4,用的是 Files API URI、上传成功,但推理”几分钟后”才失败,返回 500 且没有可用输出。同一帖里有另一位用户补充:视频本身”通常要 90 万 token”,开了 agentic 详细分析后几分钟后报 “Too many calls” 且不返回结果。
把类型二和类型三并排看,能看出一个容易被忽略的差别:类型二连 token 都没算出来,类型三算出来了却用不了。这两者的排查入口完全不同 —— 前者要查上传/计数链路,后者要查推理后端的资源分配。
而”付费账号挂、免费账号正常”这个观察,出现在类型三(跨账号对照)里;类型二则明确用了付费 key 和 Ultra 账号。两条独立路径都指向付费侧,但这还不足以断言是同一套机制。
所以正确的做法不是”搜 500 怎么修”,而是先确定自己落在哪一类:
| 你看到的现象 | 大概率是 | 动作 |
|---|---|---|
| 请求体里视频是 inlineData | 类型一 | 改用 File API |
| 报 “Token count failed”,未提交生成 | 类型二 | 等官方修复;试换模型无果就别浪费时间 |
| 上传/抽帧/计数都 200,只有生成 500 | 类型三 | 同一文件换免费账号试,锁定付费路径 |
| 上传成功,几分钟后 500 | 类型四 | 换账号对照;先关掉详细分析 |
| 403,且错误体写着 “per-user quota requests cannot use project-scoped features such as files” | 类型三的变体 | 升级 Pro 反而坏了:用免费账号跑;同时报障时附上 Request ID |
类型四里还要再分一层:同一帖的另一位用户遇到的 “Too many calls” 不是 500,而是长视频加 agentic 详细分析时”分析要跑很久、最后报调用数过多且不返回结果”。它是另一个已知问题,处置方式也不同(减少分析粒度或缩短视频),别和”几分钟后 500″混为一谈 —— 前者有明确错误文案;后者按发帖人的描述是没有可用的响应内容。
八条报告摆在一起
把这几帖的关键字段横向列一次,能看出一些单看一条时看不出来的东西:
| 时间 | 入口 | 失败点 | 错误码 | 付费/免费 |
|---|---|---|---|---|
| 2024-08 | Swift SDK,inlineData | 请求体 | 500 | 未说明 |
| 2025-05 | AI Studio 网页上传 | 上传 | 500 | 未说明 |
| 2026-05 | Gemini 付费订阅(AI Studio) | 计数 | “Token count failed” | 付费也挂 |
| 2026-05 | Pro 账号 vs 免费账号 side-by-side | 生成 | 403 | 付费挂、免费好 |
| 2026-08 | AI Studio 网页 | 计数 | “Token count failed” | 未说明 |
| 2026-09 | Interactions API + File API | 推理(几分钟后) | 500 | 未说明 |
| 2026-10 | AI Studio 网页,Ultra 付费 | 计数→抽帧 | 500 | 付费(Ultra) |
| 2026-10 | AI Studio 网页,Nano Banana | 图片计数 | “Token count failed” | 新号+充值也挂 |
三件事浮出来。
一、失败点沿时间在移动。 2024 年在请求体,2025 年在上传,2026 年 5 月集中在计数、其中 5 月 20 日那次卡在生成,8 月回到计数,9 月变成推理几分钟后才挂,10 月又在计数与抽帧之间。这不像一个从修到坏、或者从坏到修的线性过程,更像同一个底层问题在不同版本、不同入口下的不同投影。
二、错误文案不决定成因。 “Token count failed” 这一个文案,出现在付费订阅、新注册充值账号、以及视频上传三种场景里;而 403 + 配额作用域错误、500 + 无描述响应体,又是另外两种表现。如果只按错误文案归类,大概率会得出错误的结论。
三、”付费路径”这个说法需要打折。 有两例明确显示付费账号坏、免费账号好(5 月 side-by-side 和 10 月主帖),但同样有 5 月和 10 月两例显示付费账号照样坏(付费订阅计数失败、新号充值 5 美元仍失败)。所以更准确的说法是:付费路径上有已确认的故障,但”付费即坏”并不成立,免费账号也不保证没事。真正的分界线在失败环节上,不在账号档位上。
官方侧查过什么、没查到什么
既然结论建立在用户自报上,就得交代官方渠道查过没有:
- Google AI Developers Forum 的最新主题:没找到针对视频 500 的官方公告或修复说明,最近的条目集中在其他模型的功能回归上。
- 论坛内检索(
video 500):出来的全是用户帖,没有官方回复被并入。 - Google AI 状态页(
status.ai.google.dev):当前解析不出该域名,无法确认是否有对应的事件记录。 - 官方文档站(
ai.google.dev):抓取时陷入重定向循环,同样没拿到可核的内容。
所以目前没有可引用的官方口径。这既是本文的局限,也是它存在的意义 —— 在官方说明出现之前,一份能自证的隔离记录和分诊方法比什么都实用。
想自己复现,正确的请求长什么样
2024 年那位 Swift SDK 用户贴出的请求,可以直接当作最小复现模板 —— 它的问题不在语法,而在于视频是以 inlineData 内联在 JSON body 里的:
curl -H 'x-goog-api-key: AIza...'
-H 'x-goog-api-client: genai-swift/0.5.4'
-H 'Content-Type: application/json'
'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:streamGenerateContent?alt=sse'
-d '{"contents":[{"parts":[{"inline_data":{...video bytes...}}]}]}'
按帖子里的说法,这种写法保证返回 500。改成两步 —— 先把视频传到 Files API 拿到 URI,再在请求里引用这个 URI —— 就能跑通;同一位用户确认 Firebase Extension 和 Vertex AI 之所以正常,正是因为它们内部走的就是 File API。
所以要自己复现 500,其实有两条路:一条是故意用 inlineData,验证”必然 500″这个说法在今天的 SDK 上还成不成立;另一条是用 File API 加付费 key,跑一遍看是不是同样落在生成这一步。两条都跑,才能分清是”用法的坑”还是”付费路径的问题”。
该怎么绕
按发帖人给出的证据,能落地的动作有三个层次。
立刻能做的:把同一个视频放到免费账号跑一遍。如果免费账号正常,问题就锁定在付费路径上,这时用免费账号完成当次任务是最省时间的做法。
别急着把时长当变量:这一点反直觉但值得注意。四份报告里,4 分钟(26,266 tokens)、约 30 秒、23 秒的视频都失败过,而同一个文件换免费账号又能跑通 —— 但样本就这么几例,能说的只是在已有的跨账号对照里没看出时长相关性,不能据此断定时长在所有情况下都不是因素。主帖里”以前 10 万 token 的视频能跑、现在 2.6 万 token 跑不了”更像是回归而非长度门槛 —— 能用的时候什么长度都能用,不能用的时候短的也不能用。所以”把视频切短再试”这条常见建议在这几例里没有效果可循;真要缩小范围,缩小账号范围比缩小视频更可能有收获。
必须做的:把这份诊断完整报给支持团队 —— 因为跨账号对照是这类问题最有力的复现材料。补充一点实操细节:2026 年 9 月那帖里,有位协助排查的回复者(其身份标识为普通用户,非官方)向楼主索要的是 Project ID 或 Request ID,理由是”这能帮我们追踪请求日志并在服务端复现”。也就是说,没有请求 ID 的报障基本没法定位 —— 报的时候把它和你的隔离结果一起附上,别只贴一句”报 500″。特别是那三个 200 的隔离结果:它直接排除了”文件太大”和”格式不支持”这两种最常见的猜测,能省掉大量来回。
一个更值得注意的点
把表格里”付费/免费”那列再扫一遍,会发现一个细节:凡是明确做过跨账号对照的两例(2026-05-20、2026-10-31),结论都是”付费挂、免费好”;而另外两例付费账号也出错的(2026-05-22 的付费订阅计数失败、2026-10-30 的新号充值 5 美元仍失败),都没有做对照,所以并不知道免费账号是否正常。
这提示的可能不是单点 bug,而是付费路径上视频这一类输入存在某种共同因素 —— 但这只是待验证的假设,现有材料里找不到足以支撑它的官方口径。如果真是这样,影响面就不止一个用户 —— 那些把视频推理接进生产流程、并且按付费档位采购的团队,会在一段时间内完全拿不到视频能力,而他们的监控往往只看整体错误率,不区分”文本请求正常、视频请求全挂”这种组合。
所以如果你在做多模态相关的线上服务,值得给自己的告警加一个维度:把视频类请求单独拆出来看成功率,而不是混在总请求里。同一个账号下文本 200、视频 500,整体成功率可能仍然漂亮到看不出问题。
参考来源
-
Bug: Every video upload fails with “Token count failed” in Google AI Studio — 2026-08-10,5 条回复 / 439 次浏览,视频全挂但图片正常
-
Is the Gemini token counter bugged for paid users? — 2026-05-22,2 条回复 / 203 次浏览,付费用户未用量也会计数失败
-
“Token count failed” error when uploading images — 2026-10-30,3 条回复 / 83 次浏览;含一条口吻疑似官方、但身份未标注的回复(”we just pushed a fix for”)
-
[Bug] Upgrading to Pro breaks Video/Multimodal generation (403 Quota Error – Free tier works fine) — 2026-05-20,5 条回复 / 265 次浏览,第二个跨账号 side-by-side
-
Error 500 with video content when using the Swift SDK — 2024-08,Swift SDK 用户报告
-
Persistent Video Upload Failure – HTTP 500 Internal Server Error — 2025-05-03,32 条回复 / 2,256 次浏览,AI Studio 网页端上传持续 500
-
Gemini 3.7 and 3.8 Flash agentic video: repeated HTTP 500 high-demand failures — 2026-09,Interactions API 上 23 秒 MP4 三次全挂
-
500 GenerateContent Internal Error on Video Inference (Paid Pro Account Specific) — Google AI Developers Forum — 2026-10-31,发帖人 Oleksandr_Peka,本文的主要事实来源
-
AI Studio video processing fails with HTTP 500 using a paid API key; text-only requests succeed — 同版块的相关帖子,用于交叉印证”文本正常、视频失败”的症状组合
评论区
登录后可评论。