使用说明

排障:手机没有通知、Topic 创建失败与 Agent 未继续

按发送受理、手机收件箱和系统提醒分层排查。核对安装版本、创建入口、订阅、日消息额度和已回答但 Agent 未继续的状态。

更新于

先确定断在哪一步

#

使用一条无敏感信息的测试消息,记下时间、App/CLI 版本和可见错误码。不要批量重发。下面三种状态分别排查:服务端受理不等于设备收到,设备收到不等于系统提醒。

可观察状态先检查预期结果
发送命令报错或没有确认结果原错误码、网络、额度;保留原操作标识明确被拒绝,或用原标识安全恢复未知结果
命令已受理,手机内找不到消息正确 Topic、订阅是否确认、前台刷新在手机对应 Topic 看到测试消息
手机内有消息,锁屏/横幅没出现系统权限、Topic 静音、勿扰与后台推送条件一次新的测试能显示提醒;或明确为当前静音策略

消息到了,但手机没有提醒

#

如果收件箱已经有消息,先检查提醒设置,不要新建 Topic 或更换身份。每改一项后只发一次新的测试,并记录消息时间与是否在后台。前台同步成功并不能证明 APNs/FCM 推送已经成功。

  1. 核对系统设置中 Ntfyx 的通知权限,以及需要的横幅、声音和锁屏显示。
  2. 在这个 Topic 内检查静音与每日安静时段;再看系统专注模式/勿扰。安静时段只暂停提醒,不阻止消息与回答。
  3. 打开 Ntfyx 联网并同步,再回到后台测试;重启后先解锁手机。iPhone 尚未首次解锁或通知扩展超时时,可能只显示通用加密消息提示。
  4. Android 检查 Google Play 服务、到 Google 的网络与 Ntfyx 通知渠道。强行停止后须重新打开 App;通知监听/转发 App 可能自动移除提醒,不必为测试一律关闭所有电池限制。
  5. 仍无提醒时,保留“手机已收到、系统未提醒”的观察及时间交给支持;不要将推送 token、消息正文或发送链接贴出。

命令已受理,手机没有这条消息

#

先打开正确 Topic 并刷新。公开 Topic 的拥有者直接接收;其他人要完成预览后的订阅确认,网页阅读不建立手机订阅。检查关注是否暂停或取消,及本机屏蔽是否隐藏该来源。受保护消息要核对发送端的本地别名与手机所授权 Topic 是否对应。新授权浏览器没有旧消息是正常边界。

  1. 公开发送可用 public read 核对受理的消息 id;read 只证明云端可读。公开云端正文只保留 24 小时,过期后的空列表不能证明当时未受理。
  2. 受保护 CLI 在原用户环境运行 ntfyx topics 和 ntfyx doctor;不要复制别人的凭据来修复连接。
  3. 确认网络与原服务环境一致;一次前台刷新后仍缺失时,保留受理时间与脱敏错误,联系支持。不要通过改名、猜标识或反复新建来“找回”消息。
终端
ntfyx public read --topic TOPIC_ID --limit 20 --json

创建不了 Topic,或输入名字后按钮不可点

#

截至 2026-10-29 已确认公开版为 iOS 1.8.3、Android 1.8.2。在商店更新后,按手机上的公开 Topic 或私密连接入口继续;Android 后台推送需要 Google Play 服务。

  1. 先核对 App 内版本;1.8.1 的创建入口问题需要从商店更新,后台更新不能补出旧版按钮。
  2. iPhone 1.8.3 起,在公开 Topic 入口输入名称或链接,预览已有或新建状态后确认。Android 1.8.2 分别提供创建公开 Topic、订阅已有公开链接和私密扫码入口;订阅框需要真实链接或标识。
  3. 连接 Agent 应答时选择私密扫码入口和受保护 Topic。公开 Topic 不支持签名回答。
  4. 已经提交但结果未知时,先刷新原 Inbox,恢复原操作;保留原身份,不开新请求、不清除数据。仍卡住时记录版本和错误码并联系支持。

额度切换、日限额与暂停状态

#

看实际错误码和手机套餐用量,不把所有错误归为“免费 Topic 用完”。Topic 数量不是付费分档。Free/Plus/Pro 的消息日额分别为 100/1,000/20,000,按 UTC 日重置;Call 与应答还有各自子限额。已接受的回答可继续完成。已配对 CLI 可以用 usage 查看用量;匿名公开发送者需让拥有者核对。

状态/错误下一步
quota_switch_in_progress10 月 28 日已部署免费额度恢复修复;网络恢复后沿用原 URL 和操作标识重试原操作。仍持续时报告时间和版本,保留原 Inbox,不重新购买或新建身份。
daily_message_limit查看拥有者当日额度,等下一 UTC 日或由拥有者决定是否改套餐;避免重试风暴。
daily_call_limit / daily_request_limit对应子额度已用尽;等待重置。不能擅自把提问改成普通通知或把超时视为允许。
rate_limit / storage_limit按 Retry-After 等待(如有)并降低频率;存储额度与日额分开,持续失败时保留证据。
Topic 或关注被暂停查看是否由用户主动暂停;确认意图后恢复原项,不绕过暂停另建一个。
终端
ntfyx usage --json

手机已回答,Agent 没继续

#

手机提交成功只证明答案已提交,不是执行回执。先核对原终端/Agent 是否仍在运行,再检查原 request ID 的状态。原发送端可能离线、已被撤销、等待已结束,或外部操作的结果未知。

  1. 在原配对用户与原 CLI 环境,使用 result 查询原请求;这是只读观察,不要附加 --claim 来“试一下”。
  2. pending:等待尚未完成;answered:查看验证后的具体决定。Deny 保持拒绝,不能改发新题求 Allow。
  3. expired/cancelled/replaced:原请求已终止。手机草稿或迟到回答不能让它恢复。
  4. 已领取或执行结果未知:检查原任务日志与目标系统状态;单次领取不能保证外部操作恰好执行一次,不自动重跑副作用。
终端
ntfyx result REQUEST_ID --json

配对过期、离线与浏览器旧历史

#

配对二维码五分钟过期,仅在确认原配对已过期或取消后,才从可信发送端生成新码;核对手机和发送端的服务环境。离线可以读本地缓存与编辑草稿,但提交前必须联网并重新核对请求状态。新浏览器取得独立密钥,不能读取授权前的消息;“Earlier request updated”不意味着它有权回答旧题。不要修改配对 URL 或向支持发送其中的 fragment。

何时联系支持,提供什么

#

完成上述顺序检查后仍失败,提供 App/CLI 版本、系统、发生时间与时区、脱敏错误码,以及最后确认成功的步骤(服务端受理/手机收到/系统未提醒/答案提交)。公开版本创建入口仍缺失时注明安装版本;不要把待审版本的测试结果写成已在自己手机完成。预览诊断报告后再自行发送,不包含消息正文、答案、Topic 链接、完整发送 URL、token、配对码、恢复包或私钥。