跳转到内容

错误代码

除标准 HTTP 状态码外,RealityConnect API 的多个操作还会在响应体中返回机器可读的 error 代码,用于说明请求被拒绝的具体原因。本页按端点列出了每个命名代码、触发条件以及处理方式。


返回命名代码的操作使用以下结构,各端点特有的额外字段见下文说明:

{
"statusCode": 409,
"error": "NodeHasDerivatives",
"message": "..."
}

message 是可选字段,如果存在,会提供一段人类可读的详细说明。请根据 error 而不是 message 来编写处理逻辑。

PATCH /v1/nodes/{nodeId}/move/{newParentId} — 409 Conflict

代码含义建议操作
AccessRightsChangeRequired此次移动会改变可访问该节点的人员;message 会说明具体的变化请审查该访问权限变化,如可接受,可改用 force: true 重试
MaxDepthExceeded此次移动会超出层级结构允许的最大深度将节点移动到层级更浅的位置
CircularityFound目标父节点位于被移动节点自身的子树内选择一个位于该节点子树之外的父节点
NodeHaveMembershipsAttached该节点附带的成员身份记录阻止了跨权限边界的移动先移除相关成员身份,或在同一权限范围内移动
NodesInDifferentRegions该节点与目标父节点部署在不同的区域无法解决 —— 节点不能跨区域移动
NodeCannotBeMoved该节点类型不支持移动该节点类型无法解决此问题
DerivativesNotInCommonParent该节点的衍生输出并非全部位于与移动目标相同的父节点下先重新整理衍生内容,然后重试
SourcesNotInCommonParent该节点的源输入并非全部位于同一父节点下先重新整理源内容,然后重试
DataBundleLinkedToTwin该节点的 Data Bundle 已链接到某个 Twin请先取消该 Twin 的链接
DoesNotMeetHierarchyConstraints此次移动违反了特定类型的层级规则检查目标父节点允许的子节点类型
MoveNodeFailed移动被拒绝,但没有更具体的代码请重试;如问题持续出现,请联系支持团队

DELETE /v1/nodes/{nodeId} — 409 Conflict

代码含义建议操作
NodeHasDerivatives该节点存在必须先移除的衍生输出,列于 derivatives[] 中先删除或移动列出的衍生内容,然后重试
NodeNotInDeletableState该节点当前正在处理中,或处理失败,具体见 isProcessing / isFailed等待处理完成,或先解决处理失败问题,然后重试
NodeHasBundleDependants该节点的 Data Bundle 存在阻止删除的依赖项先移除这些依赖项
DeleteNodeFailed删除被拒绝,但没有更具体的代码请重试;如问题持续出现,请联系支持团队

还原或彻底删除回收站中的节点

Section titled “还原或彻底删除回收站中的节点”
端点状态码代码含义建议操作
PATCH /v1/nodes/{id}/restore409StorageLimitExceeded还原该节点会超出组织的存储配额释放存储空间或提高配额,然后重试
DELETE /v1/nodes/{id}/hard409NoNodeRemoved在回收站中未找到处于可移除状态的该节点请核实节点 ID 及其在回收站中的状态

POST /v1/bundles/{bundleId}/processing — 409 Conflict

代码含义建议操作
ProcessingCostMismatch提交的处理成本与当前成本不一致请获取最新的成本估算后重试
NoInputDataFoundForProcessing未找到该 Data Bundle 可供处理的输入数据请在触发处理前确认上传会话已完成
InsufficientProcessingCapacity当前没有可用的处理容量请稍后重试
FailedToLaunchProcessing无法启动处理任务请重试;如问题持续出现,请联系支持团队
端点状态码代码含义建议操作
POST /v1/site-files403StorageLimitExceeded组织的存储配额已用尽释放存储空间或提高配额
POST /v1/site-files409FileAlreadyExists已存在具有相同标识的文件使用现有文件,或以不同名称上传
POST /v1/site-files/{fileId}/finalize400FileNotCompatible上传文件的格式与预期的文件类型不兼容请检查文件格式后重新上传
POST /v1/bundles/{bundleId}/upload-sessions403StorageLimitExceeded组织的存储配额已用尽释放存储空间或提高配额
POST /v1/bundles/{bundleId}/upload-sessions/{sessionId}/files403StorageLimitExceeded组织的存储配额已用尽释放存储空间或提高配额
POST /v1/twin/{contextId}/object/attachments409StorageLimitExceeded组织的存储配额已用尽释放存储空间或提高配额
POST /v1/twin/{contextId}/object/attachments409FileAlreadyExists已存在具有相同标识的附件使用现有附件,或以不同名称上传

PUT /v1/groups/{groupId}/users/{userId}(添加成员)— 409 Conflict

代码含义建议操作
GroupHasSamlLink该用户组的成员身份由 SAML/SSO 集成管理请通过 SAML 提供方管理成员身份
CannotInviteToSCIMGroup该用户组的成员身份由 SCIM 配置管理请通过 SCIM 提供方管理成员身份
UserAlreadyMember该用户已是该用户组的成员无需操作

DELETE /v1/groups/{groupId}/users/{userId}(移除成员)— 409 Conflict

代码含义建议操作
GroupHasSamlLink该用户组的成员身份由 SAML/SSO 集成管理请通过 SAML 提供方管理成员身份
CannotRemoveMemberFromSCIMGroup该用户组的成员身份由 SCIM 配置管理请通过 SCIM 提供方管理成员身份

POST /v1/groups 和 PATCH /v1/groups/{groupId} — 409 Conflict

代码含义建议操作
DuplicateGroupName该组织中已存在同名的用户组请选择其他名称
CannotUpdateMemberFromSCIMGroup该用户组的成员身份由 SCIM 配置管理请通过 SCIM 提供方管理成员身份

DELETE /v1/groups/{groupId} — 409 Conflict

代码含义建议操作
CannotRemoveSCIMGroup该用户组的成员身份由 SCIM 配置管理请通过 SCIM 提供方管理成员身份
CannotRemoveOrganizationGroup该用户组没有唯一的所属分部无法解决 —— 该用户组无法通过此端点删除

POST /v1/nodes/{nodeId}/invitations 和 POST /v1/invitations 使用相同的错误代码。

状态码代码含义建议操作
409UserAlreadyInvited该用户已有一个待处理的邀请无需操作
409UserAlreadyMember该用户已是成员无需操作
403InvalidEmailDomain受邀邮箱的域名不在该组织允许的范围内请使用允许域名下的邮箱地址
400CustomRoleNotAssignableToDataNode指定的自定义角色无法分配给该节点请选择可在该节点分配的角色
400CustomRoleNotFound指定的自定义角色不存在请核实角色 ID
400AdminsitrativeRoleNotFound*指定的管理角色不存在请核实角色 ID
400AdministrativeRoleInvalidNode管理角色被指定到了不支持该角色的节点上请改在组织级别分配该管理角色
422InvitationEmailRejected邮件服务商永久拒绝了该收件地址请更正邮箱地址后再重试
503InvitationEmailNotSent邮件服务商暂时不可用;未持久化任何数据请按原样重试该请求

* 此代码名称在 API 当前的响应中存在拼写错误 —— 请按图中所示原样匹配,而不是 AdministrativeRoleNotFound。

速率限制、身份验证与访问控制

Section titled “速率限制、身份验证与访问控制”

403 可能来自 快速入门 — 安全模型 中描述的三层访问控制中的任意一层:OAuth 作用域、按节点的角色,以及内容访问。目前这三者共用同一个状态码,其中大多数还共用同一种通用响应体,因此应将 403 理解为“因这几种原因之一而未获授权”,而不要一律假定是作用域问题。

状态码代码含义
429rate_limited该组织的请求配额已用尽 —— 参阅速率限制
401not_authenticated请求缺少 Bearer 令牌,或该令牌无法解析
401invalid_token该令牌的签名或过期校验未通过
403(无代码 —— message:"Insufficient OAuth scopes")该令牌未携带此操作所需的作用域 —— 参阅OAuth 作用域
403(无代码 —— message:"Forbidden resource")调用方在该节点上的角色或内容访问权限不允许此操作,或组织已达到许可证/席位上限 —— 响应体无法区分具体是哪一种原因
403errorCode: "SSORestrictedResource"该资源仅限通过特定 SSO/身份提供商会话进行身份验证的调用方访问
  • 参阅 API 参考,查看每个操作的完整请求和响应结构。