bmob-error-codeslisted
Install: claude install-skill bmob/agent-skills
# Bmob 错误码字典
Bmob 的报错由三个独立编号空间组成:
1. **Android SDK 本地错误**:9001–9023(在 SDK 客户端侧抛出,不会走网络)
2. **iOS SDK 本地错误**:100、20000–20030(在 SDK 客户端侧抛出)
3. **REST API 服务端错误**:HTTP 状态码 + 业务码(401 / 500 / 400 + body 里的 `code` 字段,所有 SDK 的网络错误本质都是这个)
> **关键诊断流程**:拿到错误后**先看是不是网络错误**(看响应体里有没有 `{ "code": ..., "error": "..." }`),如果是,按 REST API 错误码表查;如果没有响应体只有 SDK 抛出的本地 code(9xxx 或 2xxxx),按 SDK 本地表查。
## 按现象反查(响应体 `error` 英文)
| 现象 / `error` 关键词 | 业务码 | 详�� |
|------------------------|--------|------|
| `object not found` | 101 | 下文 REST §3 |
| `invalid field name` | 105 | REST §3 |
| `unique index cannot has duplicate value` | 211 等 | REST §3 |
| `QPS beyond the limit` | 10076 | REST §4 |
| `mobilePhoneNumber already taken` | 206 等 | REST §3 用户相关 |
| `Could not find user` / 登录失败 | 101 / 201 | REST §3;查用户名密码 |
| Android 仅 `9015`、描述含糊 | 9015 | 下文 §1 **9015 专题** |
| iOS `20017` 初��化未完成 | 20017 | 下文 §2 |
| HTTP 401 Unauthorized | — | 密钥错或签名错;[`shared/faq.md`](../../shared/faq.md) |
| 权限 / ACL 拒绝 | 9015 / 9016 / 138 等 | [`shared/anti-patterns.md`](../../shared/anti-patterns.md);P1 `bmob-acl-and-roles` |
更多路由类问题:[`shared/faq.md`](../../shared/faq.md)。
## 1. Android SDK 本地错误码(9001–9023)
| 码 | 含义 | 常见原因 / 修复 |
|---|---|---|
| 9001 | Application Id 为空 | 没调用 `Bmob.initialize(context, "AppId")`;检查初始化时机是否在用 SDK 之前 |
| 9002 | 解析返回数据出错 | 服务端返回非预期 JSON;查看原始 HTTP 响应 |
| 9003 | 上传文件出错 | 文件路径、权限、网络任一问题 |
| 9004 | 文件上传失败 | 同 9003,常配合 9022 |
| 9005 | 批量操作超过 50 条 | Bmob 单次批量上限 50;拆分多次调用 |
| 9006 | objectId 为空 | 更新