🎯 Seetong 问题雷达 09:00 第233期
时间窗口:2026-10-14 17:00:00 ~ 2026-10-15 09:00:00(Asia/Shanghai)
TL;DR 核心要点
- 🔴 iOS / Android 8.4.1.6「报警回放看不了」跨端聚集:5 条独立反馈覆盖 4 个机型、4 个地区,全部带可读 Logan,且均集中在本窗口凌晨 02:00~05:15 的 3 小时内(严重度 66 / 100,置信度 中)——反馈 257345 / 257346 为同一 iPhone 17.1.1 用户在 33 秒内连提 2 次;257341(刚果金金沙萨)、257344(江苏宿迁)同版本同日,跨端跨地域分布排除单机偶发;但 Logan 覆盖时段与反馈时刻不重合,暂不能确证失败点
- 🟠 iOS 8.4.1.6 重置密码失败并回显原始错误码 30000126(登录 by 三方 SDK 的 token 已过期)(严重度 60 / 100,置信度 中)——反馈 257356 原话即带 重置密码失败(30000126),代码链两端均把该错误码当作用户文案直接展示:iOS TPS_CommonUtil.m:281 映射为「通过code获取的token失效」,最终落进 %@(%zd) 模板;Android AccountCodeUtils.kt:488 同样映射后拼 ($code)。神策 ForgetPassword 事件近 7 天 error_code=30000126 达 996 次 / 192 用户,说明这不是单点
- 现象描述:用户从报警消息进入回放,界面打不开或看不到画面;部分用户同时描述进入消息页后界面卡住、无法操作。所有反馈都强调「升级后」出现,未升级前正常。
最近一个月 Top 问题
按严重度与复发期数排序,已把跨期同类反馈归集;负责人由问题代码锚点对应的 Git 提交历史(blame / 近期主要提交者)反查;数据窗口:最近 30 天(截至 2026-10-15)。
| # | 问题(严重度降序) | 严重度 | 平台 | 版本 | 负责人 | 问题原因 |
|---|---|---|---|---|---|---|
| 1 | 升级后回放体验整体退化 4 期 · 18 条反馈 | 85 | Android · iOS | 8.4.1.6 / 8.3.14.2 | 唐胜、许源、欧阳荣、谭伟 | 8.4.1.6 对回放链路做了多处改动(时间条 UI、通道切换进度对齐、报警-录像联动),导致回放体验多点退化;Logan 显示取流层无崩溃,问题在"UI/状态对齐 + 报警录像关联"而非连接失败。 |
| 2 | KMP 回放页未申请屏幕常亮,回放中手机自动息屏 10 期 · 25 条反馈 | 84 | Android · HarmonyOS | 8.4.1.6 / 8.4.1 / 8.4.2 | 陈宝旺、唐胜、谭伟、张威 | KMP 回放页的屏幕常亮能力已在代码中完整实现(KMP 公共层 → 桥接层 → Android 宿主层齐备),但承载该实现的提交只落在 feature_v8.4.2 一条分支上,feature_v8.4.4、master、hotfix_v1.1.1 全部不含,因此所有已发布版本(Android 8.4.1.6 / HarmonyOS 1.1.1.11)在运行时都走不到 FLAG_KEEP_SCREEN_ON,回放过程中发生系统级息屏。 |
| 3 | HarmonyOS 1.1.1.11 回放 / 监控链路不可用连续第 6 期聚集 13 期 · 127 条反馈 | 72 | HarmonyOS | 1.1.1.11 / 1.1.1 / 1.1.1.6 | 陈宝旺、冉博麟、唐胜、李国涛 | 待定——HarmonyOS 1.1.1.11 的回放 / 监控链路存在跨机型跨地区的选择性失败,但由于 HarmonyOS 端 Logan 上报链路自 2026-09 起持续缺失(连续 6 期 0 条可下载),根因无法从客户端日志侧确认,当前只能确认「影响面真实存在且在扩大机型覆盖面」。 |
| 4 | KMP 卡回放取「当天录像」时走云回放分支,失败后无超时兜底并反复重试 1 期 · 4 条反馈 | 71 | Android | 8.3.11.3 / 8.4.1.6 | 陈宝旺、谭伟 | KMP 回放页在选择 Tab 时只信设备记忆、不信设备能力,把 supportCloud=false 的设备硬切到云回放 Tab 并以「前一天」初始化;云链路从未 prepared(currentVideoUrl 空、cloudPrepared=false),失败事件 result=0 又恰好落入 result<0 的无退避重试分支,同时 SD 异常态在非 WiFi IPC 上被 return NONE 吞掉——三者叠加,用户既看不到当天录像也收不到失败提示,且失败状态被 saveLastPlaybackTab(tabIndex=1) 固化到下一次。 |
| 5 | iOS 灯光配置「提示失败 / 实际成功」——`NetworkIndicatorEnable="-1"` 非法值导致 1521 返回 -1 1 期 · 3 条反馈 | 68 | iOS | 8.4.1.4 / 8.4.1.6 | 欧阳荣、谭伟 | iOS 端把 1301 + 1108 + 1521 三条独立协议的结果汇聚到同一个回调 block(UserClient.mm:1504 / 5091 / 5099),任一条失败即判定整次保存失败;当 1521 携带设备并不支持的 NetworkIndicatorEnable="-1" 字段时返回 Result="-1",UI 因此报「配置失败」,而 1301 / 1108 已生效 → 用户看到「提示失败、实际成功」。 |
| 6 | Android 8.4.1.6 进入监控长期「一直加载」——`add_watch_result=-1` 连续失败 40 次、首帧迟至 105 秒 3 期 · 10 条反馈 | 66 | Android · iOS | 8.4.1.6 | 唐胜、张威、谭伟、欧阳荣 | 进入监控页时 P2P 通道尚未建立,客户端在 105 秒窗口内以约 10 秒为周期反复 addWatch(返回 -1)→ stopWatch 空转,且无首帧超时兜底,用户侧表现为「一直加载」。 |
| 7 | iOS 回放「当前同时播放人数已达上限」误触发——NVR 主设备与通道共享 `cloudId` 导致额度自占 1 期 · 1 条反馈 | 64 | iOS | 8.3.14.3 / 8.4.1.6 | 欧阳荣、谭伟、位冬 | iOS 端 cloudId 被定义为「NVR 主设备与全部通道的公共分组键」(Camera.h:500 / STDeviceListModel.m:657),回放页又固定以 cameraArray.firstObject 作为回放上下文(STPlaybackVC.m:6046-6048),使单用户单设备场景下也可能同时占用「主设备会话」与「通道会话」两份 NVR 并发额度;一旦 NVR 返回 -7 / -14,STPlaybackVC.m:1422 立即把它翻译成「当前同时播放人数已达上限」并强制停止回放、隐藏功能栏,用户表现为「回放看不了」。 |
| 8 | Android 8.4.1.6「不存录像了」——设备侧存储能力位缺失 2 期 · 6 条反馈 | 63 | Android · HarmonyOS · iOS | 8.4.1.6 / 1.1.1.11 | 唐胜、张威 | 待补证——该 HONOR BRC-AN00 用户的设备在能力协商中未声明本地存储能力,客户端据此既不提示也无法确认存储可用,表现为「不存录像」;需设备端确认存储介质状态与固件行为。 |
| 9 | Android 8.4.1.6 卡回放开启 2 倍速后画面丢帧、时间轴跳 10 余秒 2 期 · 2 条反馈 | 62 | Android | 8.4.1.6 | 陈宝旺、唐胜 | 卡回放链路对时间轴滚动中间值未做节流(onTimeChanged 直通),且帧回调的去重粒度为固定 1 秒,在 2 倍速下单帧时间跨度已超过去重窗口,两者叠加使刻度尺与文案出现十秒级跳变;画面丢帧则需由播放器侧 controlNvrReplay(..., NVR_ACTION_FAST, speed, "") 的取流策略确认。 |
| 10 | 云录像漏录人(AI 人形录像缺失) 1 期 · 2 条反馈 | 62 | Android | 8.3.14.2 / 8.4.1.6 | 陈宝旺、唐胜 | 云录像片段的结束判定与人员活动尾段不匹配,导致"人走后最后一段"容易被提前截断;该链路缺少线上埋点,无法量化发生面。 |
🔴 问题 1:iOS / Android 8.4.1.6「报警回放看不了」跨端聚集(4 机型 / 4 地区 / 凌晨 3 小时窗口) | 负责人:唐胜、欧阳荣、位冬、陈宝旺
1. 现象与覆盖范围
- 现象描述:用户从报警消息进入回放,界面打不开或看不到画面;部分用户同时描述进入消息页后界面卡住、无法操作。所有反馈都强调「升级后」出现,未升级前正常。
- 涉及反馈:257345、257346(iOS 8.4.1.6 / iPhone 17.1.1 / 山东聊城冠县,同一用户 05:13:44 与 05:14:17 连提 2 次)、257341(Android 8.4.1.6 / vivo V2561A / 刚果金金沙萨)、257344(Android 8.4.1.6 / vivo V2548A / 江苏宿迁泗阳)、257343(iOS 8.4.1.6 / iPhone 27.0 / 江苏徐州贾汪,原话「看消息…动都动不了」)
- 覆盖维度:2 平台(iOS + Android)× 4 机型 × 4 地区(山东 / 江苏 / 安徽 / 刚果金)× 1 版本(8.4.1.6)= 4 个维度
- 时间聚集性:5 条全部落在 2026-10-15 02:01 ~ 05:14 的 3 小时 13 分内
- 对比参照:同窗口 Android 8.4.1.6 另有 257274(安徽亳州,iOS,19:35)、257252(陕西西安,Android,18:05,仅报「加减时间段反应慢」)
- Logan 可用性:5 / 5 全部提供 Logan(本窗口 HarmonyOS 反馈则 16 / 16 无 Logan,形成鲜明对比)
- 严重度评分:66 / 100(反馈量 20 / 共性 30 / 关键度 30)
- 反馈量 20:窗口内 5 条同义反馈(3~5 条档)
- 共性 30:涉及 2 平台 × 4 机型 × 4 地区(≥3 维,满分)
- 关键度 30:录像回放类,取 30(低于设备掉线/远程查看的 40)
2. 神策证据(核心数据源)
- 事件可用性核验:
Login事件近 8 天有稳定触发(10-08 ~ 10-14 日均为 76.6 万 ~ 86.2 万次 / 53.8 万 ~ 60.8 万用户),说明神策取数链路正常,下面的缺口是埋点覆盖问题而非查询问题
| 日期 | 触发用户 | 触发次数 |
|---|---|---|
| 2026-10-08 | 583,627 | 837,606 |
| 2026-10-09 | 582,134 | 829,463 |
| 2026-10-10 | 580,546 | 824,932 |
| 2026-10-11 | 589,382 | 838,530 |
| 2026-10-12 | 607,998 | 862,472 |
| 2026-10-13 | 567,026 | 802,039 |
| 2026-10-14 | 538,460 | 765,789 |
- 关键缺口:报警回放链路未找到可用的服务端失败分流事件。本期尝试以
Login的login_fail_type做维度校验时,神策直接报ImpalaSQLException: Could not resolve column/field reference: 'login_fail_type'—— 该字段在服务端不存在。因此问题 1 无法给出 error_code 分布与漏斗断点,这是本期最重要的证据边界,已在「待补证」写明补法。 - 趋势判断:无法下趋势结论(缺少对应事件),不得用
Login的量级代替回放链路。
3. Logan 关键日志(核心数据源)
- 反馈 257346(iOS,1106607 bytes / 30680 行):日志起始
2026-10-11 10:07:45,命中内容集中在 10-11 与 10-16 之外的预置窗口,可见AlarmMessagePage/MessageCenterPage的 kuikly 性能行(Memory in use: 38.673MB)、TPS_MSG_RSP_ADDWATCH握手回执(error:0)、InitDecodePortLog一次解码端口异常:
> [L608] InitDecodePortLog: uid:31513316 init decode video param error! Video Params - width: 0, height: 0, framerate: 0, nMediaType: 0x0000
—— 该行说明存在一路取流拿到了全零的视频参数,但发生在预览链路且在本次日志早段,不能直接归因到报警回放入口。
- 反馈 257344(Android,108169 bytes / 3901 行):日志起始
2026-10-15 01:10:35,是本次唯一覆盖凌晨时段的样本,可见AlarmMessagePage首屏加载全链路成功:
> [L556] AlarmMessagePageVM:alarm list updated, date=2026-10-15, ..., hasMore=false, count=100
> [L560] AlarmMessagePage:loadInitialData network-first success elapsedMs=144 rowCount=2
—— 消息页本身加载正常(144 ms),queryAlarmMessages 一次拉回 1 条(itemCount=1);日志未见任何 onReplayError / play failed 或回放启动失败记录,说明该用户在本段日志内没有进入回放页(或回放页无日志上报)。
- 反馈 257343(iOS,1019001 bytes / 558880 行):可见
AlarmMessagePage的 kuikly 页面创建([KLog][AlarmMessagePage]:startObserveOnlineAlarmMessages source=created)、queryAlarmMessages success ... itemCount=100与MessageThrottle reloadTableView,未见卡死堆栈或主线程阻塞证据。 - Logan 结论:3 份样本都没有捕获到报警回放的失败调用,失败链路发生在日志覆盖时段之外。因此本问题的根因不能从 Logan 直接读出,置信度只能给「中」。
4. 代码定位(详细)
- 涉及模块:KMP 回放页(Android 宿主)/ iOS 消息模块
- 关键类与锚点:
- Android 报警回放入口:
AlarmBridgeApiImpl.kt:241-264(openPlaybackPage)→PlaybackPageRouter.kt:44-80(openPlaybackPage)→:58的跨端开关shouldOpenCrossPlatformPlayback()→openKmpPlaybackPage - 跨端开关判定:
PlaybackPageRouter.kt:88-96
val config = Global.getUserConfig() ?: return false
val configText = config.crossPlatformConfig?.takeIf { it.isNotBlank() } ?: return false
return JSONObject(configText).optBoolean("and", false)
- 关键缺陷锚点:
openKmpPlaybackPage(:101-141)构造页面参数时,isCloudReplay一行被注释掉:
put("fromAlarmReplay", fromAlarmReplay)
put("alarmReplayTime", alarmReplayTime)
//put("isCloudReplay", isCloudReplay) // ← 被注释
而 KMPBridgeModule.kt:626 读取该字段并留了默认值 true:
isCloudReplay = userData?.optBoolean("isCloudReplay", false) ?: false,
→ 参数在 KMP 路径上被静默丢弃,回放类型退化为默认值,与原生 legacy 路径(PlaybackPageRouter.kt:156-163 明确 putExtra(Constant.EXTRA_IS_CLOUD_REPLAY, isCloudReplay))行为不一致。
- 回放启动:
RecordPlayerView.kt:245(recordPlayCallback?.onStartReplay(device))与:249-258(IO 线程startNvrReplay+ 重试 +onReplayError) - 底层调用:
LibImpl.java:803-840(startNvrReplay→P2PNvrReplayByTime/LocNVRReplayByTime) - 调用链:
AlarmFragment2.java:1839/MainActivity2.java:1411→PlaybackPageRouter.openPlaybackPage→openKmpPlaybackPage→ KuiklyPlayBackPage→KMPPlayBackVideoView.playVideoByTime(:223-229)→RecordPlayerView.startReplay→startNvrReplay - 关键分支:
recordType == 0时被改写为Integer.MAX_VALUE(LibImpl.java:826-828);枪球设备audioEnable走isGunDevice分支 —— 这两条路径都可能让"报警录像"这类特定录像类型的检索范围与预期不一致 - 修复方向锚点:
- 优先:恢复
PlaybackPageRouter.kt:120的isCloudReplay透传(或明确 KMP 侧不再需要该参数并删除消费点,二者必须一致) KMPBridgeModule.kt:626的默认值需与原生路径一致,避免"字段缺失 = 默认 true"这种隐式语义- 报警回放入口需补失败可观测性:
openAlarmPlaybackPage目前失败只写Log.e(KMPBridgeModule.kt:633),未接埋点
5. 根因结论
- 置信度:🟡 中
- 一句话根因:报警回放在 Android 上已切到 KMP 路径,但 KMP 路径丢掉了
isCloudReplay参数(PlaybackPageRouter.kt:120被注释),与原生路径行为分叉;叠加该链路没有任何服务端失败埋点,导致用户看到"看不了"却无从定位。 - 关键证据链:反馈跨端跨地域聚集(5 条 / 4 机型 / 4 地区 / 1 版本)+ 代码层面参数透传缺失(已定位到行)+ 神策字段缺失导致失败分布不可查 —— 三者互相印证的是「可观测性缺口」,而不是某一处崩溃。
- 明确不成立的推断:不得据此认定「8.4.1.6 回放必然失败」;257344 的 Logan 显示消息页加载正常(144 ms),说明不是全链路不可用。
6. 建议下一步
- 分配给:唐胜(KMP 回放页 owner,
RecordPlayerView.kt/KMPPlayBackVideoView.kt近期提交者;PlaybackPageRouter.kt亦由其 2026-07-31feat:优化回放页面跳转数据内容引入) - 优先处理项:
- 复核
PlaybackPageRouter.kt的isCloudReplay为何被注释,确认是临时调试残留还是有意为之;给出恢复或显式废弃的结论 - 为报警回放入口补失败埋点(
openAlarmPlaybackPage失败分支目前只在Log.e)
- 验证方法:回归用例覆盖「报警消息 → 卡回放」在云回放与本地录像回放两种类型下的跳转参数一致性;回访 257345/257346(同一用户,留存意愿强)
🟠 问题 2:iOS 8.4.1.6 重置密码失败并回显原始错误码 30000126 | 负责人:位冬、谭伟、许源、唐胜
1. 现象与覆盖范围
- 现象描述:用户一键重置密码失败,界面直接弹出「重置密码失败(30000126)」——括号里是服务端原始错误码,未翻译成用户可理解的文案。
- 涉及反馈:257356(iOS 8.4.1.6 / iphone 26.3.1 / 山东潍坊 / 06:07:26,带 Logan 与文件日志)
- 严重度评分:60 / 100(反馈量 10 / 共性 20 / 关键度 30)
- 反馈量 10:窗口内 1 条直接反馈
- 共性 20:涉及 1 机型 × 1 版本 × 1 地区,但神策侧显示跨版本高频(见下),故不取最低档
- 关键度 30:账号可恢复性属于中高关键路径(用户无法自行找回密码 = 账号直接不可用)
2. 神策证据(核心数据源)
- 事件:
ForgetPassword(忘记密码全流程埋点,STResetPasswordSensor.m:150上报) - 近 7 天(2026-10-08 ~ 10-14)整体量:
| 日期 | 触发用户 | 触发次数 |
|---|---|---|
| 2026-10-08 | 11,012 | 15,931 |
| 2026-10-09 | 10,585 | 15,378 |
| 2026-10-10 | 10,683 | 15,700 |
| 2026-10-11 | 10,951 | 16,143 |
| 2026-10-12 | 10,620 | 15,404 |
| 2026-10-13 | 10,181 | 14,523 |
| 2026-10-14 | 9,974 | 14,822 |
error_code=30000126分布(近 7 天累计):996 次 / 192 个用户- 对照其它错误码同窗口量级:
30000211验证码错误 3,580 次 / 1,425 用户;30000212验证码过期 1,408 次 / 380 用户;30000203账号未注册 22,157 次 / 11,432 用户 - 即 30000126 不是尾部偶发,而是稳定占比的错误类型(约占非 200 错误的 2.6%)
- 重置方式分布(近 7 天):一键重置 47,050 次 / 36,090 用户;手机号重置 59,058 次 / 39,179 用户;邮箱重置 1,690 次 / 602 用户
—— 一键重置占总量约 43%,而 30000126 正是一键重置专属错误码(见下),影响面不可忽略
- 趋势:7 天内日活稳定(9,974 ~ 11,012 用户),未见爆发,属长期存在的稳定缺陷而非新版本回归
3. Logan 关键日志(核心数据源)
- 反馈 257356(iOS):该用户提供 OBS 文件日志(1498424 bytes),日志起始
2026-02-07 11:32:15 - 可见的关键上下文(同一账号
18206441777/user_id 40746506在多个时段反复冷启动):
> [L233] 2026-02-11 20:41:40.732 Seetong_tps[6470:2309899] -- 登录流程 -- AppDelegate -- configRootVC - didFinishLaunchingWithOptions --
> [L282] 2026-02-11 20:41:40.971 ... 收到刷新token回调 - 数据不包含 NULL 终止符,可能引发错误。
- 重要边界:日志时段为 2026-02 至 2026-10 的长跨度历史堆积,未直接命中
2026-10-15 06:07的这次重置密码请求,也没有命中30000126的失败响应体。因此本问题的 Logan 只提供了环境上下文,未提供失败瞬间证据。 - 可用的旁证:
[L52]与[L282]两处一致的数据不包含 NULL 终止符,可能引发错误。提示 token 回调解析存在已知告警,官方 SDK 注释自身即标注"可能引发错误",与 token 过期类错误同源。
4. 代码定位(详细)
- 涉及模块:iOS
Classes/Login/Controller、Tools/TPS_CommonUtil;Androidlogin/src/main/java/com/seetong/login/utils - 关键常量定义:
- iOS:
Tools/NetworkManager/STResponseModel.h:88STRequestRegisterErrorCodeTokenExpire = 30000126, // token已过期 - Android:
login/src/main/java/com/seetong/login/utils/AccountCodeUtils.kt:95const val ERROR_ONE_KEY_TOKEN_EXPIRE = 30000126,注释「本机号码-授权token已过期」 - 调用链(iOS):
STForgetPwdViewController.mm:711(kAPIResetPwdNumberCheck 本机号码校验)→ onFailure → :734-745 拼 forget_reset_password_fail(%zd) → STLogManager handleErrorWithCode: 上报STLoginViewController.m:277(同接口,登录页入口)→ onFailure → :303-309 同款拼接STOneKeyResetPwdViewController.m:138(kAPIResetPwdLocalNumber 一键重置提交)→ onFailure → :175-182 同款拼接TPS_CommonUtil.m:281(getLocalRegisterCodeErrorText)把该码映射为 login_by_thirdsoft_err_invalid_code_tokenzh-Hans.lproj/Localizable.strings:1167 → "通过code获取的token失效"
- 调用链(Android):
AccountCodeUtils.kt:488 ERROR_ONE_KEY_TOKEN_EXPIRE -> tips = context.getString(R.string.login_by_thirdsoft_err_invalid_code_token):505 return "$tips($code)" ← 错误码被无条件拼进用户文案
- 关键分支:iOS 侧
getForgotPwdErrorCodeText:(TPS_CommonUtil.m:388-407)没有覆盖 30000126 分支,落到else兜底:
return [NSString stringWithFormat:@"%@(%zd)",STRING(@"network_weak_hint", @""),errorCode];
该兜底在语义上把"授权 token 过期"误报为"网络问题",与 STOneKeyResetPwdViewController.m:175-182 走 forget_reset_password_fail(%zd) 的路径文案不一致(同一错误码在不同入口显示不同标题)。
- 修复方向锚点:
TPS_CommonUtil.m:388-407增加30000126显式分支,给出可操作文案(如「本机号码校验已过期,请重新获取」)并提供重试入口,而非仅提示失败- 底层修复:一键重置依赖第三方闪验 SDK 的授权 token,
STLoginViewController.m:249已存在innerError处理与[[UserClient shareUserClient] init_fc]重新初始化逻辑,但 token 过期时没有触发重新初始化,只是弹提示 —— 这是让用户「卡死在同一个错误」的直接原因 - Android 侧
AccountCodeUtils.kt:488同上,需统一跨端文案与重试行为
5. 根因结论
- 置信度:🟡 中
- 一句话根因:一键重置密码依赖第三方闪验 SDK 的授权 token,token 过期(30000126)时 App 只弹原始错误码、不重置校验链、不给重试入口,用户被永久卡在同一失败态;且 iOS 兜底分支还把该错误误述为"网络问题"。
- 关键证据链:反馈原文直接携带错误码(用户可见)+ 神策
ForgetPassword.error_code=30000126近 7 天 996 次 / 192 用户(长期稳定)+ 代码两端均确认(%code)拼接展示 —— 三条独立证据互相印证。 - 保留意见:Logan 未命中失败瞬间,无法排除"该用户另有并发问题";但代码与埋点证据已足以定性。
6. 建议下一步
- 分配给:位冬(
STForgetPwdViewController.mm/STOneKeyResetPwdViewController.m/ 忘记密码埋点近期提交者);Android 侧 唐胜(AccountCodeUtils.kt的 30000126 分支由其 2026-03-12 引入) - 优先处理项:
- iOS 补 30000126 的显式文案 + 重试入口,消除
network_weak_hint误述 - 一键重置失败时触发闪验 SDK 重新初始化(复用
STLoginViewController.m:249已有模式),而不是直接终止
- 验证方法:构造 token 过期场景(等待或篡改本地 token 缓存)走一键重置,确认提示可理解且可重试成功;上线后观察
ForgetPassword.error_code=30000126的日计数是否下降
本期扫描全量(全部沉淀到知识库)
Markdown 里保留全部反馈(含 -102 等网络问题);HTML 呈现时渲染器会自动折叠 🟣 普遍性网络问题
(含中/英/俄/法/西/葡/土/阿/日多语言网络提示模板),只展示更有价值的条目,无需在本段手工删减。
| # | 关键词 | 反馈数 | 分类 | 处置 |
|---|---|---|---|---|
| 2 | 报警回放·报警录像不可看 | 5 | 🔴 进雷达 | 详细分析见问题 1 |
| 3 | 重置密码失败(30000126) | 1 | 🟠 进雷达 | 详细分析见问题 2 |
| 5 | 回放/录像其它 | 4 | 🟡 单点待补证 | 已排除(含 257252 加减时间段反应慢、257287 不录像) |
| 6 | 声音报警异常 | 3 | 🟡 单点待补证 | 已排除(HarmonyOS 全部无 Logan) |
| 7 | 卡顿/消息页 | 1 | 🟡 单点待补证 | 并入问题 1 观察(257343) |
| 8 | 通知接收 | 1 | 🟡 单点待补证 | 已排除 |
| 9 | 付费/扣费疑问 | 1 | 🟤 咨询建议 | 已排除 |
| 10 | 咨询/建议(连接、分享、内存等) | 4 | 🟤 咨询建议 | 已排除 |
| 11 | 无效文本(乱码、纯符号、情绪宣泄) | 4 | 🟢 无效文本 | 已排除 |
| 12 | 其它(版本吐槽、参数串等) | 6 | 🟢 无效文本 | 已排除 |
已折叠 2 条普遍性网络问题(含-102/-101/-1002与中/英/俄/法/西/葡/土/阿/日多语言网络提示模板,如Проверьте телефонную сеть、Please check your mobile network);全量明细见同名 Markdown 知识库。
本期重点反馈明细(非网络类,按时间倒序)
| ID | 时间 | 平台 | 版本 | 机型 | 地区 | 反馈摘要 | Logan | 处置 |
|---|---|---|---|---|---|---|---|---|
| 257366 | 10-15 07:39 | Harmony | 1.1.1.11 | HUAWEI HED-AL00 | 宁夏银川 | 拍查了所有问题都好着呢,还是离线 | ✗ | 🟡 待补证 |
| 257364 | 10-15 07:36 | Android | 8.4.1.6 | HUAWEI ADA-AL00 | 湖北荆州 | 不在线无法工作 | ✓ | 🟡 待补证 |
| 257361 | 10-15 07:08 | Harmony | 1.1.1.11 | HUAWEI CHZ-AL00 | 黑龙江 | 摄像机失去操作功能 | ✗ | 🟡 待补证 |
| 257356 | 10-15 06:07 | iOS | 8.4.1.6 | iphone 26.3.1 | 山东潍坊 | 重置密码失败(30000126) | ✓ | 🟠 问题 2 |
| 257355 | 10-15 06:05 | Harmony | 1.1.1.11 | HUAWEI MIA-AL00 | 河北邯郸 | 声音报警设置一次却连响五次 | ✗ | 🟡 待补证 |
| 257354 | 10-15 05:53 | Harmony | 1.1.1.11 | HUAWEI MIA-AL00 | 河北石家庄 | 声音报警设置一次却喊五次 | ✗ | 🟡 待补证 |
| 257346 | 10-15 05:14 | iOS | 8.4.1.6 | iPhone 17.1.1 | 山东聊城 | 报警回放不能看 | ✓ | 🔴 问题 1 |
| 257345 | 10-15 05:13 | iOS | 8.4.1.6 | iPhone 17.1.1 | 山东聊城 | 报警看不了 | ✓ | 🔴 问题 1 |
| 257344 | 10-15 05:10 | Android | 8.4.1.6 | vivo V2548A | 江苏宿迁 | 升级后报警里看不了视频,看视频会熄屏 | ✓ | 🔴 问题 1 |
| 257343 | 10-15 04:09 | iOS | 8.4.1.6 | iPhone 27.0 | 江苏徐州 | 看消息看不了,动都动不了 | ✓ | 🔴 问题 1(观察) |
| 257341 | 10-15 02:01 | Android | 8.4.1.6 | vivo V2561A | 刚果金金沙萨 | 升级后看不了报警录像 | ✓ | 🔴 问题 1 |
| 257326 | 10-15 00:30 | Harmony | 1.1.1.11 | HUAWEI HOP-AL10 | — | 关闭所有声音还经常叫,严重扰民 | ✗ | 🟡 待补证 |
| 257325 | 10-15 00:28 | iOS | 8.4.1.6 | iPhone 15.8.3 | 山东青岛 | e30 电脑客户端及 NVR 需付费观看 | ✓ | 🟤 商业化策略 |
| 257323 | 10-15 00:14 | Harmony | 1.1.1.11 | HUAWEI HED-AL00 | 河北廊坊 | 总是莫名离线 | ✗ | 🟡 待补证 |
| 257321 | 10-14 23:51 | Android | 8.4.1.6 | OPPO PKD110 | 安徽宿州 | 用网线联结不上 | ✓ | 🟡 待补证 |
| 257300 | 10-14 21:22 | Harmony | 1.1.1.11 | HUAWEI ALN-AL00 | — | 无法接收通知 | ✗ | 🟡 待补证 |
| 257298 | 10-14 21:08 | Android | 8.0.0.7 | HONOR PCT-AL10 | 陕西榆林 | 无线外网连接成功却显示设备离线 | ✗ | 🟡 待补证 |
| 257287 | 10-14 20:17 | Android | 8.4.1.6 | HONOR ANY-AN00 | 河北石家庄 | 不录像了 | ✓ | 🟡 待补证 |
| 257286 | 10-14 20:14 | Harmony | 1.1.1.11 | HUAWEI CHZ-AL00 | — | 鸿蒙系统摄像头老闪烁 | ✗ | 🟡 待补证 |
| 257279 | 10-14 19:56 | Android | 8.4.1.6 | OPPO PMK110 | 浙江温州 | 这个版本有问题 | ✓ | 🟢 无效文本 |
| 257274 | 10-14 19:35 | iOS | 8.4.1.6 | iPhone 16.0.1 | 安徽亳州 | App 卡,报警回放很卡,想改回以前 | ✓ | 🔴 问题 1(关联) |
| 257252 | 10-14 18:05 | Android | 8.4.1.6 | OnePlus PGKM10 | 陕西西安 | 回放加减时间段反应慢 | ✓ | 🟡 待补证 |
| 257249 | 10-14 17:40 | Harmony | 1.1.1.11 | HUAWEI SLG-W10 | — | 华为平板切换摄像头存在 bug | ✗ | 🟤 建议 |
| 257242 | 10-14 17:02 | Android | 8.3.14.2 | vivo V2354A | — | 关闭第三方广告 | ✗ | 🟤 建议 |
HarmonyOS Logan 覆盖情况(第 12 期连续零覆盖)
本窗口 HarmonyOS 反馈 16 条,Logan 提供数 0 条(0 / 16)。这已是连续第 12 期 0 覆盖,T-20261008-142800-9c1e 建议由 P1 提级为团队级阻塞项——HarmonyOS 侧任何问题都只能靠文案聚类,无法做根因分析。
任务账本联动
| 任务 ID | 标题 | 状态 | 处置 |
|---|---|---|---|
T-20261015-090316-0dda | 核查 iOS 8.4.1.6 一键重置密码在授权 token 过期时无重试与恢复(30000126) | P1 / captured | 本期新建(问题 2),归属 位冬 / 唐胜 |
T-20260926-170258-2226 | 排查 HarmonyOS 1.1.1.11 实时预览与回放大范围不可用 | P1 / captured | 不涉及,本窗口 Harmony 无回放类反馈(仅 257371「视频正常,回放没有」1 条且无 Logan) |
T-20260926-170258-576a | 核查 Android 8.4.1.6 KMP 回放页缺少屏幕常亮导致回放熄屏 | P1 / captured | 本期新增证据:257344(vivo V2548A / 江苏宿迁)同时反馈「看视频会熄屏」,为该问题第 3 期;仍属未修复状态 |
T-20261014-090647-bbbe | 核查 Android 8.4.1.6 KMP 卡回放误报播放失败:startReplay 与失败事件竞态 | P1 / captured | 不涉及,本期 Logan 未见 onReplayError / play failed |
T-20261014-090651-44e1 | 核查 iOS 8.4.1.6 报警消息列表卡顿 | P1 / captured | 本期追加证据:257343(iPhone 27.0)「看消息…动都动不了」、257274(iPhone 16.0.1)「App 卡…很卡」,为该问题第 2 期 |
T-20261014-090651-0bee | 核查 HarmonyOS 1.1.1.11 设备频繁离线且断电不恢复 | P1 / captured | 延续观察,本期 257366 / 257323 同族但无 Logan |
T-20261008-142800-9c1e | 核查 HarmonyOS Logan 上报链路缺失 | P1 / captured | 沿用,本期为第 12 期 0 覆盖;建议提级为团队级阻塞项 |
T-20261013-090000-a1b2 | 核查 Android 8.4.1.6 进入监控首帧迟至 105 秒、add_watch_result=-1 空转 | P1 / captured | 不涉及,本期窗口无首帧迟滞反馈 |
说明一:问题 1 未新建任务,因其作为「KMP 回放页参数透传不一致 + 回放链路缺埋点」的新形态,与 T-20261014-090647-bbbe(失败事件竞态)根因不同但同属 KMP 回放链路,本期按独立观察项记录,下期若再现即独立建单。
说明二:问题 1 与 T-20260926-170258-576a(回放熄屏)虽同窗口出现于 257344 同一条反馈,但一个是"看不了"、一个是"熄屏",按 skill 规则分开归属,未合并。
数据源状态汇总
| 数据源 | 状态 | 说明 |
|---|---|---|
| 反馈平台 | ✅ 正常 | total=134 / fetched=134 / complete=true,覆盖完整 16h 窗口 |
| 心愿单 | ✅ 正常 | total=5318 / fetched=300 / complete=false(安全上限 300),仅用于排除产品建议型反馈,不影响本期结论 |
神策 Login | ✅ 正常 | 7 天稳定,用于链路健康度核验 |
神策 ForgetPassword | ✅ 正常 | 支持 error_code / reset_way / date 分组,问题 2 的核心证据 |
神策 login_fail_type | ❌ 字段不存在 | 报 Could not resolve column/field reference;该字段在服务端未定义,已在报告中显式标注,未据此下任何结论 |
| Logan(iOS / Android) | ⚠️ 部分有效 | 5 份相关样本均可下载,但均未覆盖失败瞬间;仅提供环境上下文 |
| Logan(HarmonyOS) | ❌ 零覆盖 | 16 条反馈 0 份日志,连续第 12 期 |
| 代码定位 | ✅ 正常 | iOS / Android / KMP 三个仓库均在标准路径可读 |
| 友盟 | ⏭️ 未调用 | 本期无崩溃 / ANR / 闪退类反馈,按 skill 规则不查 |
心愿单亮点
| 心愿单 ID | 平台 / 版本 | 诉求 | 价值判断 |
|---|---|---|---|
| 5318 | Android / 8.4.1.6 | 有车牌识别功能吗 | ⭐⭐ 需求存在但属设备能力范畴,非 App 侧 |
| 5314 | HarmonyOS / 1.1.1.11 | 项目管理里直接推送售后/托管消息给客户确认 | ⭐⭐⭐ 降低客户操作门槛,可提升托管转化 |
| 5313 | Android / 8.4.1.6 | 保存天数多一些,想看以前的录像 | ⭐⭐ 与云存储付费项强相关 |
| 5309 | iOS / 8.4.1.6 | 电脑端及 NVR 录像机需付费观看,希望取消 | ⭐⭐ 商业化策略反馈,与本期 257325 同源 |
| 5302 | Android / 8.3.14.2 | 报警设置过于繁琐,双目需调 12 个地方 | ⭐⭐ 设置链路简化,降低误配率 |
待补证
- 报警回放链路缺埋点(问题 1 最大盲区):需在
openAlarmPlaybackPage失败分支(KMPBridgeModule.kt:633)与startNvrReplay返回值(RecordPlayerView.kt:249-258)接入服务端可查的埋点,否则下期仍无法给出失败分布与漏斗断点。 - Logan 时段与反馈时刻不重合:257346 / 257343 / 257356 三份日志均未覆盖失败瞬间。下次 run 应优先对反馈时间后 30 分钟内再次上传日志的用户抽样,或推动 Logan 上报策略改为"反馈提交时强制追加最近 10 分钟缓冲"。
isCloudReplay参数注释的意图未确认:PlaybackPageRouter.kt:120被注释是临时调试还是有意废弃,需 owner 确认后才能定修复方案。login_fail_type字段不存在:已确认服务端无此字段,后续不要再以该字段做维度拆分;如需登录失败分流,应先确认真实字段名(可参考AccountCodeUtils.kt中的错误码常量表)。- HarmonyOS Logan 零覆盖连续 12 期:需服务端 / 客户端共同定位上报链路断点,已建议提级。
- 问题 2 的失败瞬间证据:建议回访 257356 用户(山东潍坊 / iOS 8.4.1.6),在其复现一键重置时即时上传日志。
下一期 = 第234期 = 2026-10-15-H17(今天下午 17:00;窗口 今日 09:00 ~ 17:00)