闯关活动进度归零:账号没串,那问题到底出在哪
前一天明明提交了沙箱地址,第二天刷新,页面顶部那行变成了「已完成 0/3 关」。再填一次地址提交,直接弹「当前账号无提交权限」。
两个症状指向同一件事:这个活动页上,属于我的记录没了。
第一反应:串号了
这个提交接口是跟账号绑定的,进度按账号记。所以我第一反应是账号出问题了——会不会登到别人账号去了?
于是我登到账号中心看右上角。账号名是对的。再看 IAM,主账号就这一个,没多没少。没串。
这里插一句:查账号这件事看起来是废话,但它把范围一下子缩小了一大半。如果账号真是串了,后面所有排查方向都是错的。
第二个假设:被别的东西顶掉了
我前一天的另一个动作是——在云学堂做了个实验,点了「开始实验」。
那个实验页面有个很特别的行为:它不需要你输密码,会自动以「实验账号」登录。而华为云各站点共用同一套登录 cookie,所以理论上,我打开那个页面的瞬间,整个华为云的身份就换成实验账号了。如果闯关活动的进度按 uid 记,那我提交过的东西自然就「不存在」了。
时间点上,吻合得让人难受。
但我没验证成功。因为账号名从头到尾没变过,进度也照样是 0/3——如果真是顶号,账号名应该变,进度也该能被找回。既然两样都没变,这条假设至少不是完整解释,甚至可能整个不成立。
所以我把它记下来,不当结论。
拆前端,找到更硬的一条
页面不给我看数据,那我就去看它怎么拿数据。
活动页是个打包过的 JS。顺着请求函数找下去,两个关键的东西就露出来了:
activity_code = "open-capability-2026-1024"
接口基址 = https://opentest-dataset.huaweicloud.com/api/v1/hdopenservice/user
- 进度:
GET {基址}/get-activity-progress?activity_code=... - 提交:
POST {基址}/submit-activity-work
关键在基址那个域名。opentest-dataset 是测试/数据集环境,不是生产。如果正式数据在生产库、而这个页面读的是测试环境的数据集,那我提交过的关卡在这个页面看来就是空的——「0/3」和「无提交权限」两个症状,一次性就都解释了。
而且这跟账号没关系。这条线索比我的「顶号」假设硬得多,因为它是从代码里读出来的,不是从时间线上猜出来的。
我没查到的部分
老实说,到此为止我也没能确认:测试环境里到底有没有我那条记录,是需要调接口带登录态才能看的事。
所以这篇不是「破案报告」,是「排查到哪一步」的记录。真正确定的只有两件事:账号没串,以及这个页面的数据源可能根本不是生产。
教训
这类「数据丢了、状态不对」的问题,排查顺序应该是:
- 先确认状态来源对不对——这个页面读的是哪套环境、哪个账号、哪份数据
- 再确认身份对不对——账号名、uid、租户
- 最后才怀疑业务逻辑
我这次是反着来的:先花大时间怀疑账号,最后靠读代码才发现方向一开始就不对。
还有个更普适的:「静默失败」最难查的地方,在于它不给你任何线索。没有报错、没有提示、日志里也看不出来。进度归零的时候,页面不会告诉你「因为你换了环境所以数据读不到」——它只会安安静静地显示 0。
(下一篇写另一个静默失败:提交建议时点按钮像坏了,网络面板里一条请求都没有。)
- 点赞
- 收藏
- 关注作者
评论(0)