DSH 报「settings are unavailable in this browser」怎么办?DeepSeek Harness 加载提供方目录失败与配置模型报错排查
settings are unavailable in this browser 是 DeepSeek Harness 设置镜像(settings mirror)加载失败时的兜底文案,最常见于「设置 → 模型」页——页面要同时加载提供方目录和设置镜像,镜像没返回初始数据时就报这句。修复顺序:先确认 dsh web 宿主在运行,再刷新页面;不行就重启宿主重连,多数情况两步解决。
报错发生在哪:配置模型页的加载链路
这句话不是独立报错,而是「设置镜像无初始响应」的兜底提示。 在 DeepSeek Harness 源码里,模型设置页的数据由三部分拼成一个快照:可配置的提供方目录(llm.providers)、设置命名空间(共享的设置镜像)、以及引用的凭证(来源)。
- 页面打开「设置 → 模型」,向宿主请求提供方目录 + 设置镜像。
- 如果镜像返回了错误,页面优先显示镜像自身的错误信息;镜像没有任何初始响应时,才落到兜底文案
settings are unavailable in this browser(源码里mirrored.error ?? 'settings are unavailable in this browser',来源)。 - 报错标题里常带「加载提供方目录失败」或出现在「配置模型」的操作里——本质是同一个:模型设置页没拿到设置数据。
所以看到这句话,先别怀疑配置写错了——先怀疑页面和宿主之间的设置通道断了。
排查流程:按顺序做,多数问题两步解决
设置镜像由宿主进程提供,报错时优先恢复「页面 ↔ 宿主」通道。 按下面 5 步排查:
- 确认 dsh web 在运行:设置数据由宿主(dsh web 进程)持有。终端里确认进程还活着;刚才是不是重启过宿主、页面还停在旧状态?
- 刷新浏览器页面:最简单的一步。设置镜像的加载是一次请求,刷新会重新拉取:
- 直接按 F5 / 刷新按钮;
- 还不行就强制刷新:macOS
Cmd+Shift+R,WindowsCtrl+Shift+R,绕过缓存重新加载。
- 重启宿主再重连:镜像通道卡死时,刷新没用,重启宿主最有效:
等终端出现bash
# 1. 在启动 dsh web 的终端按 Ctrl+C 停掉进程 # 2. 重新启动(未全局安装时用 npx) npx @deepseek-ai/dsh webdsh web: http://127.0.0.1:3080,回到浏览器刷新页面。 - 远程/SSH 浏览器:重建连接:远程浏览器的设置作用域是 memory 模式——只在当前进程内生效,不会向宿主持久写入、也不会在重连后自动恢复(来源)。检查与宿主的连接(SSH 转发、远程端口),重连后刷新页面。
- 看真实错误:兜底文案掩盖了底层原因。打开浏览器开发者工具(F12)→ Network 面板,刷新页面,看设置相关请求返回了什么(500 / 404 / 超时),把具体错误贴给官方仓库或按对应错误排查。
排查中常见误区
设置报错不等于配置被清空——磁盘上的配置一直都在。 三个要点:
- 已保存配置不受影响:API 密钥存在
$DSH_HOME/.credentials.yaml,模型配置在$DSH_HOME/settings.yaml,都在磁盘上。页面加载失败只是「读不出来」,不是「被删了」。 - 别急着改 settings.yaml:报错时先恢复服务通道,配置本身大概率没问题。
- 重启不会丢设置:
$DSH_HOME数据独立于程序本体,重启宿主、甚至重装 DSH 都不影响已保存的模型配置(来源)。
设置镜像与作用域的官方机制
理解下面两个官方机制,排查会更有方向感——设置数据由宿主提供、加载有明确的状态机。 源码里设置作用域(scope)的状态是 loading / unavailable / ready / saving / error 五态;unavailable 时不仅模型页报兜底文案,欢迎横幅同样显示「welcome acknowledgement settings are unavailable」(来源)——所以「设置不可用」是整块设置通道的问题,不只影响模型页。
- 模型改动即时生效:官方文档明确,模型配置修改在下一次请求即生效,不用重启服务(来源)——页面恢复后刷新即可看到新配置,别急着重启。
- 密钥是只写(write-only)的:保存后页面只拿到脱敏后的描述符、永远拿不到明文密钥;密钥实际存在
$DSH_HOME/.credentials.yaml,设置里只保留它的引用(来源)。这也解释了为什么报错时别去 settings.yaml 里翻密钥——那里本来就没有。 - 凭证解析有固定顺序:继承的环境变量 →
$DSH_HOME/.credentials.yaml→ 调用目录的.env→$DSH_HOME/.env。报 MISSING_CREDENTIAL 时按这个顺序补位即可(来源)。
注意事项
settings are unavailable in this browser是兜底文案,优先在浏览器 Network 面板找真实错误。- 先刷新页面,再重启宿主——顺序反了会多等一次启动时间。
- 远程浏览器(SSH 转发等)设置不持久,每次重连后都要刷新页面。
- 怀疑端口问题时用
lsof -i :3080(macOS/Linux)或netstat -ano | findstr :3080(Windows)确认宿主在监听。 - 页面恢复后,模型配置正常加载,想直观排查模型调用可装模型类 DSH plugin(token 用量等),在 DSH Plugin Hub 的模型分类下挑选。

来源:ui-settings-models store.ts(源码)、welcome-store.ts(源码)、Web UI 指南(官方文档)
常见问题
它是 DeepSeek Harness 设置镜像(settings mirror)加载失败时的兜底文案:配置模型页需要同时加载提供方目录(llm.providers)与设置镜像,镜像没有返回初始数据时页面就报这句话(源码确认,报错前会优先显示镜像返回的真实错误)。
先确认 dsh web 宿主在运行,然后刷新浏览器页面重试;还不行就重启宿主(Ctrl+C 后重新 npx @deepseek-ai/dsh web)再刷新。多数情况是页面与宿主之间的设置通道断了。
不一定。远程浏览器的设置作用域是 memory 模式,不向宿主持久写入、也不会在连接重建后自动恢复。检查与宿主的连接,重连后刷新页面即可,不需要改 settings.yaml。
按顺序做三件事:① 确认 dsh web 进程在运行(lsof -i :3080 看监听)② 强制刷新/清浏览器缓存重载页面 ③ 重启宿主后再打开页面。若还不行,在浏览器开发者工具里看网络请求的具体失败原因。
不会。它只是页面加载设置时的读取失败,已保存的配置(密钥在 $DSH_HOME/.credentials.yaml、模型配置在 settings.yaml)都在磁盘上;服务恢复后刷新页面就能正常显示。