Skip to content

故障排查

遇到问题时,按本页顺序排查。反馈问题时请尽量附上对应的日志 / 崩溃报告文件。

先找日志

内容位置
运行日志data/logs/app/dice-<启动时间戳>_<日期>.log(每次启动新建一份,跨天自动分割)
崩溃报告data/logs/crash_<时间戳>.txt
跑团记录data/logs/.log 导出的 txt / html)
审计日志data/audit/(通知系统的事件流水,jsonl)

控制台窗口默认隐藏,可以从系统托盘图标右键菜单里随时显示 / 隐藏。

程序闪退 /「已停止工作」

Dice!Next 内置崩溃诊断兜底:无论哪种崩溃(访问违例、未捕获 C++ 异常、CRT 无效参数、abort),退出前都会把死因写到 data/logs/crash_*.txt,内容包括:

  • 时间、崩溃类型、版本 / build 号
  • 启动阶段标记main:chdir / config / database / running 等)——即使没有堆栈也能知道死在哪一步
  • 异常码、出错地址所属模块名 + 偏移、未捕获异常的 what() 文本

排查步骤:

  1. 打开 data/logs/ 下最新的 crash_*.txt,看 phasekind
  2. 再对照 data/logs/app/ 里同时间的运行日志最后几行。
  3. 反馈问题时把这两个文件一起发给开发者,基本可以直接定位。

TIP

data/logs/ 目录不可写,报告会退而写到程序目录下的 crash.txt

双击 exe 后「什么都没发生」

这是正常现象:默认启动即最小化到系统托盘(右下角会弹一个气泡提示),不显示控制台窗口。

  • 在任务栏右下角找托盘图标,右键可「打开网页面板 / 显示控制台 / 打开应用目录 / 退出」。
  • 想恢复「启动就显示控制台」的旧行为:把配置 dice.console_start_hidden 改为 false

第二个进程一启动就退出

同一套数据(同一个 data/ 目录)只允许运行一个进程——启动时会在数据目录写 .instance.lock 单实例锁,检测到已有实例时第二个进程直接退出,并在控制台/日志里给出提示,避免两份进程同时写数据库造成损坏。

  • 想跑多个骰子:复制一份完整程序目录,各用各的 data/
  • 确认没有其他实例却仍提示被占用:删除数据目录下的 .instance.lock 后重试。

WebUI 打不开

  1. 确认进程在运行:托盘图标是否存在;data/logs/app/ 有无新日志。
  2. 端口可能变了:默认端口 18088 被占用时会自动顺延到下一个可用端口并写回配置文件,启动日志会有一条 WARN。最简单的办法是托盘右键 →「打开网页面板」,它总是用当前实际端口;也可查看 config/default_config.jsonserver.port
  3. 远程访问:确认 server.host0.0.0.0,并放行防火墙对应端口;不建议直接暴露公网,见部署与运维
  4. 提示需要登录:设置过 WebUI 登录密码后,所有后台页面都需要先登录(Cookie 会话,7 天有效)。

忘记 WebUI 登录密码

停止程序,编辑 config/default_config.json,删除 webui.password 字段(或改为空字符串 ""),再启动即可(空 = 关闭登录鉴权,记得重新设置)。

适配器连不上

先分清正向 / 反向:

模式谁连谁端点怎么填
正向 WS(forward_wsDice!Next 主动连接 OneBot 客户端OneBot 客户端的正向 WS 地址,如 ws://127.0.0.1:3001/
反向 WS(reverse_wsOneBot 客户端反连 Dice!Next只填一个端口号(如 6700),然后在 OneBot 客户端把反向 WS 地址指向 ws://<Dice!Next 所在 IP>:<该端口>/

逐项排查:

  • OneBot 客户端(NapCat / Lagrange / LLOneBot 等)是否开启了对应的服务(正向 WS 服务端 / 反向 WS 上报),端口是否一致。
  • access_token 两端是否一致(留空则两端都留空)。正向连接时 Dice!Next 会以 Authorization: Bearer <token> 头发送。
  • 防火墙:反向模式要放行 Dice!Next 监听的端口;正向模式要能访问到 OneBot 客户端的端口。
  • 状态显示「连接超时」:正向 WS 断线后会自动重连(前 10 次每 5 秒、第 11~20 次每 60 秒),连续 20 次失败后暂停自动重连并置为「连接超时」——修好 OneBot 端后在适配器管理页点手动重连即可。
  • 仪表盘实时日志与 data/logs/app/ 里有具体错误原因。

指令不回

  • 群里是否发过 .bot off(群停用)?在 群组管理 或群里 .bot on 恢复。
  • 是否开了全局静默 / 全局停用指令(系统设置)?
  • 用户 / 群是否在黑名单里?
  • 白名单模式(dice.whitelist_only)下,不在白名单的群不会响应。
  • 适配器状态是否为「已连接」?
  • 不想连 QQ 调试:用管理面板的测试台直接发指令看回复。

还是没头绪?

带上以下信息反馈:

  1. 版本 / build 号(管理面板「关于」页或启动日志第一行)
  2. data/logs/app/ 最新日志的相关片段
  3. 若是崩溃:data/logs/crash_*.txt 全文
  4. 复现步骤

基于 AGPLv3 协议发布