콘텐츠로 이동

오류 코드

표준 HTTP 상태 코드 외에도, 여러 RealityConnect API 작업은 요청이 거부된 이유를 구분하기 위해 응답 본문에 기계 판독 가능한 error 코드를 반환합니다. 이 페이지는 엔드포인트별로 모든 명명된 코드를 정리하고, 각 코드를 유발하는 원인과 처리 방법을 설명합니다.


명명된 코드를 반환하는 작업은 다음 형식을 사용하며, 엔드포인트별 추가 필드는 아래에 표시됩니다:

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

message는 선택 사항이며, 있는 경우 사람이 읽을 수 있는 세부 정보를 제공합니다. 처리 로직은 message가 아닌 error를 기준으로 분기하세요.

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

코드의미권장 조치
AccessRightsChangeRequired이동으로 인해 노드에 접근할 수 있는 사용자가 변경됩니다; message에 구체적인 변경 내용이 설명됩니다접근 권한 변경 사항을 검토하거나, 허용 가능하다면 force: true로 다시 시도하세요
MaxDepthExceeded이동하면 허용된 최대 계층 깊이를 초과합니다더 얕은 위치로 노드를 이동하세요
CircularityFound대상 부모가 이동 중인 노드의 하위 트리 내에 있습니다노드 자신의 하위 트리 밖에 있는 부모를 선택하세요
NodeHaveMembershipsAttached노드에 권한 경계를 넘는 이동을 막는 멤버십 레코드가 있습니다멤버십을 먼저 제거하거나, 동일한 권한 범위 내에서 이동하세요
NodesInDifferentRegions노드와 대상 부모가 서로 다른 리전에 프로비저닝되어 있습니다해결할 수 없음 — 노드는 리전 간에 이동할 수 없습니다
NodeCannotBeMoved이 노드 유형은 이동을 지원하지 않습니다이 노드 유형에서는 해결할 수 없음
DerivativesNotInCommonParent노드의 파생 출력물이 이동 대상과 동일한 부모 아래에 모두 있지 않습니다파생물을 재구성한 다음 다시 시도하세요
SourcesNotInCommonParent노드의 소스 입력이 모두 공통 부모 아래에 있지 않습니다소스를 재구성한 다음 다시 시도하세요
DataBundleLinkedToTwin노드의 데이터 번들이 트윈에 연결되어 있습니다먼저 트윈 연결을 해제하세요
DoesNotMeetHierarchyConstraints이동이 유형별 계층 규칙을 위반합니다대상 부모가 허용하는 하위 유형을 확인하세요
MoveNodeFailed더 구체적인 코드 없이 이동이 거부되었습니다다시 시도하세요; 계속되면 지원팀에 문의하세요

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

코드의미권장 조치
NodeHasDerivatives노드에 먼저 제거해야 하는 파생 출력물이 있으며, derivatives[]에 나열됩니다나열된 파생물을 삭제하거나 이동한 다음 다시 시도하세요
NodeNotInDeletableState노드가 현재 처리 중이거나 처리에 실패했습니다 (isProcessing/isFailed 참조)처리가 완료되기를 기다리거나 실패를 해결한 다음 다시 시도하세요
NodeHasBundleDependants노드의 데이터 번들에 삭제를 막는 종속 항목이 있습니다종속 항목을 먼저 제거하세요
DeleteNodeFailed더 구체적인 코드 없이 삭제가 거부되었습니다다시 시도하세요; 계속되면 지원팀에 문의하세요

휴지통에 있는 노드 복원 또는 영구 삭제

섹션 제목: “휴지통에 있는 노드 복원 또는 영구 삭제”
엔드포인트상태코드의미권장 조치
PATCH /v1/nodes/{id}/restore409StorageLimitExceeded노드를 복원하면 조직의 스토리지 할당량을 초과합니다스토리지를 확보하거나 할당량을 늘린 다음 다시 시도하세요
DELETE /v1/nodes/{id}/hard409NoNodeRemoved노드가 삭제 가능한 상태로 휴지통에서 발견되지 않았습니다노드 ID와 휴지통 상태를 확인하세요

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

코드의미권장 조치
ProcessingCostMismatch제출된 처리 비용이 현재 비용과 더 이상 일치하지 않습니다새로운 비용 견적을 가져와 다시 시도하세요
NoInputDataFoundForProcessing이 번들을 처리할 입력 데이터를 찾을 수 없습니다처리를 시작하기 전에 업로드 세션이 완료되었는지 확인하세요
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가 아니라 표시된 그대로 정확히 일치시키세요.

403은 보안 모델에서 설명하는 세 가지 접근 제어 계층(OAuth 스코프, 노드별 역할, 콘텐츠 접근) 중 어느 것에서든 발생할 수 있습니다. 현재 이 세 가지는 모두 동일한 상태 코드를 사용하며, 대부분 동일한 일반적인 본문을 공유합니다. 따라서 403을 항상 스코프 문제로 간주하지 말고 “이러한 이유 중 하나로 인해 권한이 없음”으로 처리하세요.

상태코드의미
429rate_limited조직의 요청 버킷이 소진되었습니다 — 속도 제한 참조
401not_authenticated요청에 베어러 토큰이 없거나 토큰을 구문 분석할 수 없습니다
401invalid_token토큰의 서명 또는 만료 확인이 실패했습니다
403(코드 없음 — message: "Insufficient OAuth scopes")토큰에 이 작업에 필요한 스코프가 없습니다 — OAuth 스코프 참조
403(코드 없음 — message: "Forbidden resource")호출자의 역할이나 이 노드에 대한 콘텐츠 접근 권한이 작업을 허용하지 않거나, 조직이 라이선스/좌석 한도에 도달했습니다 — 본문으로는 어느 쪽인지 구분할 수 없습니다
403errorCode: "SSORestrictedResource"이 리소스는 특정 SSO/자격 증명 공급자 세션으로 인증된 호출자로 제한됩니다
  • 각 작업의 전체 요청 및 응답 스키마는 API 참조를 참조하세요.