部署平台
Docker
版本号
ghcr.io/ibuhub/aistudio-to-api:v1.2.5
客户端/工具
No response
请求接口
OpenAI - Chat Completions
问题/请求描述
版本信息
- AIStudioToAPI: v1.2.5
- Docker image:
ghcr.io/ibuhub/aistudio-to-api:v1.2.5
- Node.js:
v24.15.0
- playwright-core:
1.60.0
- 浏览器:Camoufox / Firefox
问题描述
在 AI Studio 页面初始化 context 时,如果页面内部抛出某些错误,AIStudioToAPI 的 Node 主进程可能会直接崩溃。
我们这边观察到的页面错误包括:
Failed to load user preferences from backend Error
Failed to list models. Please try again.
- 部分失败页面会跳到
Available regions for Google AI Studio and Gemini API
真正导致容器重启的不是这些页面错误本身,而是 Playwright 在处理 page error 时访问了空的 location 字段。
崩溃日志
/app/node_modules/playwright-core/lib/coreBundle.js:49624
url: pageError.location.url,
^
TypeError: Cannot read properties of undefined (reading 'url')
at FFBrowserContext.<anonymous> (/app/node_modules/playwright-core/lib/coreBundle.js:49624:39)
at FFBrowserContext.emit (node:events:509:28)
at _Page.emitOnContext (/app/node_modules/playwright-core/lib/coreBundle.js:19815:29)
at _Page.addPageError (/app/node_modules/playwright-core/lib/coreBundle.js:19951:16)
at FFPage._onUncaughtError (/app/node_modules/playwright-core/lib/coreBundle.js:43470:20)
实际影响
Docker Compose 中服务配置了 restart: unless-stopped,所以 Node 进程崩溃后容器会立刻重启。
这会带来两个问题:
- Web Console 的 session 存在内存里,容器重启后登录态丢失,表现为登录后几秒钟自动刷新回登录页。
- 原本只是某个 AI Studio context 初始化失败,却升级成整个服务反复重启。
期望行为
页面错误或代理/地区问题导致 context 初始化失败时,应该只影响当前 context,例如:
- 标记当前 context 初始化失败
- 尝试下一个 auth
- 在 Web Console / logs 中提示代理或地区不可用
- 保持 HTTP 服务和 Web Console 正常运行
不应该让整个 Node 进程退出。
临时规避方式
我们本地临时 patch 了 Playwright bundle,让 location 为空时提供 fallback:
const pageError = {
error,
location: location2 || { url: "", lineNumber: 0, columnNumber: 0 },
};
应用这个 workaround 后,同样的 AI Studio 页面错误仍会记录到日志,但不会再导致 Node 主进程崩溃,Docker 容器也不再反复重启。
{"browserConnected":true,"status":"ok"}
/v1/models 也恢复 HTTP 200。
可能的修复方向
这个问题可能和 Playwright 1.60.0 的 page error / web error 处理有关。AIStudioToAPI 这边也许可以考虑:
- pin 到不会触发该问题的 Playwright 版本;
- 升级到已修复该问题的 Playwright 版本;
- 或在浏览器 context/page error 处理上增加防御,避免依赖层异常导致主进程退出。
这个 issue 主要想反馈:即使 AI Studio 页面或代理出口有问题,也不应该导致整个容器进入 restart loop。
以上是codex的debug后写的issue。我用人话总结一下,就是浏览器炸了导致容器不断重启。
日志信息(可选)
部署平台
Docker
版本号
ghcr.io/ibuhub/aistudio-to-api:v1.2.5
客户端/工具
No response
请求接口
OpenAI - Chat Completions
问题/请求描述
版本信息
ghcr.io/ibuhub/aistudio-to-api:v1.2.5v24.15.01.60.0问题描述
在 AI Studio 页面初始化 context 时,如果页面内部抛出某些错误,AIStudioToAPI 的 Node 主进程可能会直接崩溃。
我们这边观察到的页面错误包括:
Failed to load user preferences from backend ErrorFailed to list models. Please try again.Available regions for Google AI Studio and Gemini API真正导致容器重启的不是这些页面错误本身,而是 Playwright 在处理 page error 时访问了空的
location字段。崩溃日志
实际影响
Docker Compose 中服务配置了 restart: unless-stopped,所以 Node 进程崩溃后容器会立刻重启。
这会带来两个问题:
期望行为
页面错误或代理/地区问题导致 context 初始化失败时,应该只影响当前 context,例如:
不应该让整个 Node 进程退出。
临时规避方式
我们本地临时 patch 了 Playwright bundle,让 location 为空时提供 fallback:
应用这个 workaround 后,同样的 AI Studio 页面错误仍会记录到日志,但不会再导致 Node 主进程崩溃,Docker 容器也不再反复重启。
/v1/models 也恢复 HTTP 200。
可能的修复方向
这个问题可能和 Playwright 1.60.0 的 page error / web error 处理有关。AIStudioToAPI 这边也许可以考虑:
这个 issue 主要想反馈:即使 AI Studio 页面或代理出口有问题,也不应该导致整个容器进入 restart loop。
以上是codex的debug后写的issue。我用人话总结一下,就是浏览器炸了导致容器不断重启。
日志信息(可选)