Repository navigation
Replies: 2 comments
|
补充一个已经在 Windows 桌面端 0.2.2-rc.1 上验证的临时规避办法:固定 Desktop Host 端口,再定向清理一次遗留认证 Cookie。可以保留现有安装包和历史会话。 本机此前曾触发过一次 431,随后重装了 Harness。本轮检查时仍发现 34 条未过期的 为什么固定端口有效这个版本按包含端口的 Host authority 生成 Cookie 名称,桌面端启动时又传入 该版本默认 Cookie 有效期为 30 天,因此频繁重启时会在有效期内不断堆积。固定相同的主机名和端口后,新 Cookie 可以覆盖同名旧值;已有的其他名称 Cookie 则需要清理或等待过期。 1. 在桌面端用户配置中固定端口先完全退出 Harness,包括托盘中的后台进程。编辑默认位置: 如果设置过 在现有顶层 YAML 列表末尾添加以下条目。若已有 - id: webserver
name: "@deepseek-ai/dsh-host-webserver"
config:
host: "127.0.0.1"
port: 17863
tls: !!js ctx.webStartup.tls
compression: gzip
compressionLevel: 1
compressionThresholdBytes: 1024
注意编辑的是 2. 定向清理已经堆积的本地认证 Cookie固定端口不会立即清除之前的 Cookie。确认 Harness 已完全退出后,先备份桌面端 Cookie 数据库,默认位置是: 用 SQLite 工具打开这一个数据库,先查看目标数量: SELECT COUNT(*)
FROM cookies
WHERE host_key = '127.0.0.1'
AND path = '/'
AND name GLOB 'dsh-auth-*';确认备份完成后,执行定向删除: BEGIN TRANSACTION;
DELETE FROM cookies
WHERE host_key = '127.0.0.1'
AND path = '/'
AND name GLOB 'dsh-auth-*';
COMMIT;
PRAGMA quick_check;这只清理桌面端本地 Host 的认证 Cookie,下一次启动会重新生成;不删除 本次验证结果
如需恢复随机端口,完全退出后移除新增的 这仍属于用户侧规避。程序侧可以考虑在首次携带 Chromium Cookie 请求 Host 之前,清理该桌面端自有会话里遗留的旧 Host 认证 Cookie,或调整其会话存储方式。仅在业务鉴权时忽略旧 Cookie 无法解决请求头超限,因为 431 会先在 HTTP 解析阶段发生。 |
|
补充一台独立 Windows 机器的实测,确认 #12698 与 CycSpring 的根因判断;同时想请维护者注意一处会误导排查方向的报错文案。 先谢过 @kokeo 把崩溃日志原样贴出来,也谢 CycSpring 那条固定端口的方案——我照着在本机验证有效,省掉了我重装。 本机数据(
想请维护者看的一处文案问题(也是我认为代价最高的部分):失败发生在 建议任选其一:
另外一个会恶化的点:每失败一次重启就再多一条 cookie,所以点「重启」只会更糟,不可能自愈。按本机约每天 7 次启动,从干净库到再次触顶约 10 天——在正式修复前,CycSpring 的固定端口规避是目前唯一能长期站得住的用户侧办法。 供 triage 参考,同根因的帖子(我按标题/正文检索 English TL;DR: independently confirmed on another Windows machine — 71 port-keyed (本机标识 |
Uh oh!
There was an error while loading. Please reload this page.
今早上班打开DSH桌面端,总是失败,哪怕禁用插件启动都报错,如图:
用豆包分析并修复成功:
已经找到根因:Chromium 发出的请求带了 16603 字节请求头,Host 返回
HTTP/1.1 431 Request Header Fields Too Large。Cookie 库里累积了 71 条同一域127.0.0.1的dsh-auth-*cookie,每次启动一个新端口就新增一条、永不清理,最终把请求头撑爆。接下来清理这些 cookie。=====
清理完成就成功打开了。
All reactions