generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件) wiki_page: Troubleshooting wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Troubleshooting wiki_revision: 3ee073ae07bb2ab04f02b1178b6d289f6f5a2063 synchronized_at: 2026-08-12T09:32:15Z # 故障排查 ## 常见问题 | 现象 | 常见原因 | 检查 | 处理 | |---|---|---|---| | 三个 agent 修改同一文件 | 工单写路径重叠或共享契约未设协调任务 | 查看工单“子项目影响”和 `git status` | 停止写入,由协调 agent 重排范围 | | 一端测试通过、集成失败 | 契约副本漂移或兼容语义不一致 | 对照 `contracts/` 与三端契约测试 | 以契约事实源修复,不复制第二份 schema | | Sense 依赖 Bell 才能启动 | 把可选 connector 写成强依赖 | 在 Bell 停止时启动 Sense | 改为 Outbox/可选配置,暴露降级状态 | | Bell 接受 Sense 用户 token | 认证边界被混用 | 检查 issuer、audience、Cookie 和用户表 | 立即停止,恢复独立认证与机器身份 | | `--strict` 缺页面或章节 | Wiki 未创建/未同步或模板结构损坏 | 查看 `wiki-docs.json` 与 Wiki | 先修 Wiki,读取确认后重新同步 | | Wiki 同步提示本地脏镜像 | 直接编辑了 `docs/` | `git status --short -- docs` | 保留内容,先更新 Wiki;不要强制覆盖 | | Gitea 401/403 | token 属于其他实例、过期或权限不足 | 不打印 token;验证目标 URL | 写操作停止,修复安全配置 | | env 无法解析 | 使用 `KEY:VALUE` 而非 `KEY=VALUE` | 只检查键名和格式 | 改为标准 env 格式,不输出值 | ## 排查顺序 1. 停止继续修改并读取完整错误。 2. 核对当前工单、主 agent、子项目和允许写路径。 3. 确认问题属于单项目、共享契约还是环境。 4. 用最小命令复现,先处理第一个可行动错误。 5. 契约问题先检查唯一事实来源,再检查生产者和消费者。 6. 修复后运行受影响测试和 Wiki 一致性检查。 7. 无法验证的部分写回工单。 ## 必须停止的情况 - 凭据、真实视频、个人信息或生产数据可能泄露; - 需要共享 Sense/Bell 用户、JWT、Cookie、数据库或摄像头密码; - 多个 agent 写路径重叠且无法证明单写入者; - 契约破坏性变化没有新版本、迁移和回退方案; - 涉及删除、不可逆迁移、发布或生产变更但没有明确授权; - 工作区出现来源不明且与当前任务重叠的修改。 ## Sense MVP 排错 | 现象/状态 | 检查与处理 | |---|---| | 启动提示缺少 `SENSE_DATABASE_URL` | 正式模式必须提供独立 PostgreSQL URL;只有测试/smoke 可显式使用 `memory`。 | | 登录统一提示用户名或密码错误 | 为避免枚举账户,失败响应不区分用户不存在、密码错误或账户停用;由管理员查看审计。 | | `adapter_not_ready` | 当前设备类型尚无适配器,不代表网络故障;首期完整支持 video。 | | `discovery_unavailable` | 未设置获准的 `SENSE_ONVIF_DISCOVERY_IP`,或该 IP 不属于本机网卡。可改用手工 ONVIF 地址。 | | `authentication_failed` | 在设备管理中重新写入凭据后再次执行接入检查;不要把凭据写进地址。 | | `clock_skew` | 校准摄像机时间后重新探测。 | | `process_failed` | 检查仓库外 `SENSE_MEDIAMTX_BINARY`、基础配置和进程退出原因;达到三次重启上限后需人工处理。 | | `apply_failed` / `unconverged` | 检查 localhost Control API 是否启用并为 v3;确认媒体路径和外部进程状态。 | | 画面等待、断开或会话过期 | 先在视频服务执行对账,再重新连接;播放会话最长两分钟。 | | 区域提示需要重新校准 | Profile 分辨率已变化,按新画面重新绘制并发布新版本,不能静默复用旧坐标。 | 自动测试不访问真实摄像头或未授权网络。PostgreSQL、MediaMTX、目标浏览器与实验室摄像机的联合验证必须在获准部署环境完成。