故障排查
按配置、认证、契约、订阅、上传和推送边界定位问题。
| 症状 | 检查边界 | 解决方式 |
|---|---|---|
| 客户端启动时显示配置错误 | Backend 预设 | 设置所选模式要求的 Base URL 与 Origin,不要配置回退。 |
Auth 返回 403 MISSING_OR_NULL_ORIGIN | 可信 Origin | 让客户端请求的准确 Origin 匹配宿主 allow-list,不要与 Deep Link scheme 混淆。 |
| 原生社交登录被拒绝 | OAuth audience | 在宿主配置当前移动方案的 Apple bundle ID 与 Google client ID。 |
get-session 返回 200 + null | Session 生命周期 | 将 Session 视为失效,清理安全状态与缓存,然后返回登录页。 |
App API 返回 401 UNAUTHENTICATED | Bearer Session | 只失效一次,不要循环重试或回退 Supabase。 |
| 不同宿主的 Schema 或错误码不一致 | 契约漂移 | 将宿主镜像与规范 OpenAPI 对比,并运行 Conformance 测试。 |
| 购买成功但另一端仍未解锁 | Webhook 与身份 | 验证 Webhook Authorization、显式产品映射和 RevenueCat 用户身份,并刷新宿主快照。 |
| 预签名成功但上传完成失败 | 存储边界 | 检查 MIME/大小限制、直传响应、Object key 和宿主存储凭据。 |
| Android 测试推送不可用 | 能力边界 | 这是 v1 预期行为:注册 FCM Token,但不要调用仅支持 APNs 的测试端点。 |
| Expo Unified 在 Web 失败 | Runtime 限制 | 这是预期行为:Unified 仅支持 Expo iOS/Android;Web 请使用 Standalone 构建。 |
提交支持请求时请包含宿主 Request ID 与稳定错误码。绝不要包含 Bearer Token、Cookie、预签名 URL、Secret 或完整 Provider Payload。
