
issue: Failed to load models: SyntaxError: Unexpected token ‘<', "<!DOCTYPE "… is not valid JSON
快速结论:该报错通常出现在 Open WebUI 前端请求后端获取模型列表时,后端返回了 HTML 页面而非预期的 JSON 数据。优先排查反向代理配置(Nginx)是否正确处理了 `/api/models` 路径的转发。
问题场景
用户使用 Docker Compose 部署 Open WebUI v0.9.6,搭配 Ollama v0.9.3、Keycloak 认证和 Nginx 反向代理。在 Chromium 系浏览器(Brave)中访问时,模型选择器为空,浏览器控制台报错 Failed to load models。通过 curl 直接测试 Docker 容器内的 /api/models 端点能正常返回 JSON,但浏览器侧获取数据失败。
报错原文
+layout.svelte:211 Failed to load models:
SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON
Failed to load module script:
Expected a JavaScript-or-Wasm module script but the server responded with a MIME type of "text/html".
Strict MIME type checking is enforced for module scripts per HTML spec.
原因分析
可能原因:Nginx 反向代理配置不完整,导致浏览器端对 /api/models 的请求被拦截或重定向到了登录页面,前端收到 HTML 页面(如登录页面)而非预期的 JSON 响应。从浏览器控制台的完整报错来看,前端请求模型 API 时收到了 "<!DOCTYPE html" 开头的响应,这表明认证或代理中间件可能中断了正常请求。用户已验证 Docker 容器内部 curl 能正常返回 JSON,且浏览器 localStorage 中存在有效的 JWT token,但 Nginx 层的具体配置未公开,无法进一步确认确切位置。
环境排查
- 确认 Open WebUI 版本:v0.9.6
- 确认 Ollama 版本:v0.9.3
- 确认部署方式:Docker Compose
- 确认操作系统:Ubuntu 22.04
- 确认反向代理:Nginx(配置未提供)
- 确认认证方式:Keycloak(OIDC)
- 确认浏览器:Chromium 系(Brave)
- 确认 Ollama 连通性:Docker 内部 curl 访问
http://172.18.0.4:11434/api/tags返回正常 - 确认 Open WebUI API 响应:Docker 内部
docker exec open-webui curl -s http://localhost:8080/api/models -H "Authorization: Bearer <JWT>"返回正常 JSON
解决步骤
- 检查 Nginx 配置中
/api/路径的转发规则,确保该路径未被重写或重定向。 - 验证 Nginx 是否有针对
/api/路径的认证拦截或反向代理规则缺失。 - 查看 Nginx 访问日志和错误日志,定位返回 HTML 的具体请求 URL。
- 检查 Open WebUI 的 OIDC 配置是否将未经认证的 API 请求重定向到了 Keycloak 登录页,
/api/models应返回 401 JSON 而非 HTML 重定向。 - 如果使用 Nginx 的
auth_request模块,请确认auth_request仅限于需要认证的页面路径,/api/models应直接转发给 Open WebUI 处理。 - 确保浏览器没有缓存旧页面或 Service Worker 干扰,尝试清空浏览器缓存或使用无痕模式测试。
验证方法
在浏览器中直接访问 https://chat.example.com/api/models,观察返回的响应格式。如果看到 JSON 数据(即便是 {"detail":"Not authenticated"}),说明代理配置正常;如果看到 HTML 页面,说明代理或认证中间件仍在拦截 API 请求。多次刷新页面并观察模型选择器是否正常加载。

![[Bug]: Intermittent Output Delays and Premature Truncation in Local Knowledge Base Setup`](https://www.chat-gpts.plus/wp-content/uploads/2026/06/5812-39a9b459-768x403.jpg)

