Repository navigation
Replies: 2 comments
|
Windows 上确认了两件事,分开说: 这个帖子的根因(cookie 无界累积) 每次启动都会往 还有一个独立的缺陷,症状一模一样
一个改法同时解决两个 // 改前
welcomeBackend = await connectDesktopWelcome(ready.url, (input, init) => net.fetch(input, init));
// 改后
welcomeBackend = await connectDesktopWelcome(ready.url, (input, init) => fetch(input, {
...init,
headers: { ...init?.headers, cookie: hostCookie }
}));
我是直接改 |
0 replies
|
顺带一个给“已经无法打开DSH”的人用的应急办法:关掉 DSH 之后,把 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
现象
环境:
@deepseek-ai/dsh-desktop0.2.1-rc.5,Windows x64(Electron 44.7.0 / Node 24.21.0);同类反馈也出现在 macOS arm64 与 Linux,以及 0.2.1-rc.2 / rc.3。启动时弹出:
崩溃日志(
logs/crash-<time>-host.log)记录这句错误和调用栈,不记录 HTTP 状态;弹窗给的 Restart、Disable third-party plugins 两个按钮都无法解决(cookie 库不变)。影响:
%APPDATA%,不在安装目录);根因
三个细节叠加:
127.0.0.1:51234和下一次的127.0.0.1:58902会得到两个不同的名字。握手成功时,浏览器就多存一枚。欢迎页握手只把 2xx 当作成功,431 被统一翻译成 “Web authentication failed”,于是用户看到的是认证错误,而真正原因是请求头过大。
一句话:30 天内正常启动约 70 次,就会把请求头撑爆;界面把它误报成认证失败。
为什么集中在 10 月
桌面端在 2026-09-30 把打包版的默认端口从固定
19387改为--port 0(系统随机分配)。走这条默认路径时,此前端口固定,同名 cookie 每次覆盖,不会累积;改为随机端口后,每次正常启动都会新增一条默认有效期 30 天的 cookie。按每天 3–9 次启动,约 8–23 天后会越过 70 条阈值;10 月中旬开始的集中反馈与这一时间线大致吻合。
本机验证
431 Request Header Fields Too Large,弹崩溃框最小复现:反复启动/退出 Desktop,累计约 70 次后启动即失败(本机是在第 71 条 cookie 时触发)。
为什么重装 / 禁用插件 / 重启都没用
%APPDATA%),卸载/覆盖安装不清;临时恢复
完全退出(托盘 Quit,勿强杀)后:
Windows:删除
<userData>\Network\Cookies与Cookies-journal。本机的 userData 是%APPDATA%\@deepseek-ai\dsh-desktop,该目录名随构建而定;在%APPDATA%下找到对应目录即可。macOS/Linux:同理,删除各自 userData 目录下的 cookie 库。
删除后重启应用;这会清掉该 profile 的浏览器 cookie(本机全部是
127.0.0.1的dsh-auth-*),任务、会话、设置不在这里。按使用频率每 1–3 周需要重来一次。建议修复
dsh-auth-*,保证 jar 里最多 1 条。清理必须发生在这次请求之前,别处不生效。maxHeaderSize(例如 64 KiB),避免再次因为边缘情况直接 431。response.status写进错误与崩溃日志,别再统一报 “Web authentication failed”;这能直接省掉用户“重装 + 禁用插件”的排查成本。不建议简单改成与端口无关的 cookie 名:同一个主机上的多个实例会共用同一个名字。
English summary
dsh-auth-<hash(host:port)>cookie on every launch that completes the handshake; the port changes each start, so each one adds a new name instead of overwriting the old one.maxHeaderSize, so the Host answers 431 before auth.dsh-v0.2.2-alpha.2source.已确认的同因反馈(50 条)
按日期分布:
重点几条:
全部 50 条(按时间;编号 / 日期 / 标题)
dsh-auth-*Cookie 随随机端口累积,请求头超 16 KiB 被 431 拒绝dsh-auth-*cookie 撑爆 16 KiB 请求头上限统计口径:按报错文案与根因逐条确认,只计入“cookie 累积 → 431”的同一类;标题较含糊的 #10694、#11001、#11130、#11215、#10867、#10550 已核对正文。版本/平台只取正文或标题中明确写出的信息。
All reactions