快速结论:这个报错通常出现在使用带 --api-key-file(API Key 鉴权)的 llama-server 并访问内置 WebUI 时:前端静态资源被错误地纳入 API Key 校验,导致页面白屏、控制台报 Unauthorized: Invalid API Key。优先排查是否使用了 API Key 以及 WebUI 静态资源是否被鉴权拦截。
适用环境:Linux x86_64;llama.cpp llama-server(version 8604 / 6307ec07d,GNU 13.3.0);现象在 b8591 之后、HEAD 上复现,b8591 正常。
最快修复方案:暂无确认的一步修复方案。Issue 中用户验证的临时规避方式是:不带 --api-key / --api-key-file 启动 llama-server,服务立即恢复正常。
注意事项:去掉 API Key 会关闭鉴权,只适合本地或可信内网临时使用;这不是官方修复。Issue 中也有用户直接改动 tools/server/server-http.cpp 移除鉴权逻辑,但该做法仅为个人 workaround,未在 Issue 中确认为官方方案。
问题场景
用户在 Linux 上编译最新 llama.cpp 后,用 llama-server 启动服务,启动参数包含 --api-key-file 指向 API Key 文件,并通过多台电脑的浏览器访问 llama-server 内置 WebUI。更新后 WebUI 完全白屏,浏览器没有任何可选操作,也看不到输入 API Key 的入口;服务端日志出现鉴权失败信息。
报错原文
srv log_server_r: done request: GET / 192.168.1.101 200
Unauthorized: Invalid API Key
srv update_slots: all slots are idle
srv log_server_r: done request: GET / 127.0.0.1 200
Unauthorized: Invalid API Key
srv log_server_r: done request: GET /bundle.js 127.0.0.1 401
Unauthorized: Invalid API Key
srv log_server_r: done request: GET /bundle.css 127.0.0.1 401
Unauthorized: Invalid API Key
$ curl http://127.0.0.1:8080/bundle.css
{"error":{"message":"Invalid API Key","type":"authentication_error","code":401}}
$ curl http://127.0.0.1:8080/bundle.js
{"error":{"message":"Invalid API Key","type":"authentication_error","code":401}}
原因分析
从 Issue 讨论看,最可能的原因是 WebUI 的静态资源(如 /bundle.css、/bundle.js)被错误地放到了 API Key 鉴权之后。浏览器加载根路径 GET / 时能返回 200,但后续它需要拉取的 bundle.js / bundle.css 返回 401,于是页面脚本和样式加载失败,呈现为白屏。
Issue 中用户明确表示“/bundle.css 和 /bundle.js 似乎被 API Key 拦截,这是不正确的”,并称 b8591 正常、HEAD 失败,问题来自 b8591 之后的提交。也有评论怀疑 API Key 检查发生在前端与后端数据流中的错误位置。以上属于 Issue 中的判断,官方根因修复未在该讨论中给出明确说明。
环境排查
- 确认 llama.cpp 版本:Issue 中为 version 8604(6307ec07d),使用 GNU 13.3.0 在 Linux x86_64 构建。
- 确认是否使用 API Key:启动参数中是否包含
--api-key-file或--api-key。 - 确认基线版本:Issue 中 b8591 可正常工作,b8591 之后到 HEAD 之间出现回归。
- 确认受影响模块:
llama-server,尤其是 WebUI 和静态资源路由。 - 确认请求表现:
GET /可能返回 200,但/bundle.js、/bundle.css返回 401。 - Issue 未提供 Python、CUDA、PyTorch、显卡或依赖版本信息,不需要额外假定这些项。
解决步骤
- 先确认当前服务是否启用了 API Key。检查启动命令或脚本中是否出现
--api-key-file或--api-key。 - 用
curl直接访问 WebUI 静态资源,确认它们是否被鉴权拦截:curl http://127.0.0.1:8080/bundle.css curl http://127.0.0.1:8080/bundle.js如果返回
{"error":{"message":"Invalid API Key","type":"authentication_error","code":401}},说明与 Issue 现象一致。 - 临时规避:按 Issue 中用户验证的方式,不带
--api-key/--api-key-file启动llama-server,观察 WebUI 是否立即恢复。评论中明确写到“Works again immediately when starting the server without –api-key”。 - 如果必须保留鉴权,可优先尝试回退到 b8591 或 b8591 之前的构建,因为 Issue 中确认 b8591 工作正常、HEAD 失败。
- 不建议直接照搬评论里“删掉
tools/server/server-http.cpp中授权逻辑”的做法。该做法会移除服务鉴权,且属于个人 workaround,未在 Issue 中确认为正式修复方案。 - 关注官方后续修复。Issue 已关闭时间为 2026-04-01T19:32:16Z,但该讨论提供的修复细节有限;更新到包含修复的构建后再验证。
验证方法
重新启动服务后,再次访问 WebUI 首页,确认页面不再白屏,浏览器控制台不再出现 Invalid API Key;同时用 curl 检查 /bundle.css 和 /bundle.js,确认它们不再返回 401。若在保留 API Key 的情况下这两个静态资源仍返回 401,说明问题未解决或当前构建仍包含该回归。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


![[i18n][ko-KR] Studio "Types" filter is mistranslated as "형?"](https://www.chat-gpts.plus/wp-content/uploads/2026/10/43962-6f639e47-768x403.jpg)