I3.09.3rollback reason and retry设计

回滚提示应说明失败原因与是否可重试,而非仅呈现内容消失

别名: 回滚文案 · 能否重试 · why it failed · 不只是消失

概念解释

回滚已经开口、内容也回到了失败前,提示若只是「没了」,人仍然不知道下一步。原因与可否重试是提示的最小载荷:为什么这次没写成(权限、配额、网络、审核),以及现在再点一次有没有意义。只呈现消失,等于把一次可处理的失败收成一次魔术。

这条假定失败已被当作事件发出、界面也已干净回滚。它写的是这句话里要有的两项,不是「要不要说话」。

机制

失败被感知之后,人立刻做归因和策略。归因需要原因:是我的错(缺字段)、暂时的错(网络)、永久的错(被禁言)。策略需要「可否重试」:能,就再投递同一意图;不能,就改参数或放弃。两项缺一,决策会乱。没有原因只有「重试」,人会用同一错误参数打到配额耗尽。有原因没有可否,人会对着「无权限」狂点,或对着「网络抖了一下」放弃整晚的草稿。

「内容消失」只完成了状态机的回滚,没有完成对话轮次。对话轮次还欠一句可行动的话。这句话要短,但两项都要在:原因用对方的词(「你没有编辑这个频道的权限」),可否用一个明确的下一步(「已保存为草稿,网络恢复后发送」或「此内容无法发送」)。模糊的「出错了,请稍后再试」把两项都说成未知,等于没说。

边界

原因若会泄露不该让当前用户知道的事实(「该用户已把你拉黑」在某些产品里被故意说成投递失败),文案可以降级,但可否重试仍须诚实:不能重试就不要放重试按钮。安全拒绝(风控、二步验证)的原因可以对用户含糊,对审计清楚;界面上至少把「现在不要再点同一下」说清。批量中各条原因不同,一条总原因会骗人,要能下钻。语言与无障碍上,原因和可否不能只靠颜色或图标:红叉既不是原因也不是可否。

怎么落地

  • 回滚提示固定两槽:原因一句话、下一步一个动作(重试 / 改掉再试 / 放弃)。没有下一步的提示不合格。
  • 可重试时保留原意图(同一幂等键或同一草稿),不要让人从空白再写一遍。
  • 不可重试时拿掉重试入口,避免把永久失败当成暂时失败。
  • 验证:分别制造网络失败、权限失败、配额失败三次回滚。三次提示应能让没看见请求的人说出原因类别,并正确选择「立刻再试」或「不要再试」。再看只有内容消失、屏幕底部什么都没有的路径——那是只有回滚没有对话。

延伸

  • 同组I3.09.1 回滚时机需要清晰地把界面带回失败前的状态而非留下过渡痕迹 · I3.09.2 连续多个乐观操作叠加后,某一步失败的回滚范围需要明确边界 · I3.09.4 依赖乐观结果做出后续决策的操作需要在真实结果返回前保持谨慎
  • 相邻I3.02 乐观更新 · I2.08 加载失败
  • 站内检索rollback copy · retryable error · failure reason

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/I3.09.3