Pular para o conteúdo

Códigos de erro

Além dos códigos de status HTTP padrão, várias operações da RealityConnect API retornam um código error legível por máquina no corpo da resposta para esclarecer por que uma requisição foi rejeitada. Esta página cataloga todos os códigos nomeados por endpoint, o que os aciona e como tratá-los.


As operações que retornam um código nomeado usam este formato, com campos adicionais específicos de cada endpoint indicados abaixo:

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

message é opcional e, quando presente, traz um detalhe legível por humanos. Baseie o tratamento em error, não em message.

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

CódigoSignificadoAção sugerida
AccessRightsChangeRequiredA movimentação mudaria quem pode acessar o nó; message explica a mudança específicaRevise a mudança de acesso ou tente novamente com force: true se for aceitável
MaxDepthExceededA movimentação excederia a profundidade máxima permitida da hierarquiaMova o nó para um local menos profundo
CircularityFoundO nó pai de destino está dentro da subárvore do nó que está sendo movidoEscolha um pai fora da própria subárvore do nó
NodeHaveMembershipsAttachedO nó tem registros de membership que impedem movê-lo entre limites de permissãoRemova os memberships primeiro, ou mova dentro do mesmo escopo de permissão
NodesInDifferentRegionsO nó e o pai de destino estão provisionados em regiões diferentesNão é possível resolver — nós não podem ser movidos entre regiões
NodeCannotBeMovedEste tipo de nó não suporta movimentaçãoNão é possível resolver para este tipo de nó
DerivativesNotInCommonParentAs saídas derivadas do nó não estão todas sob um pai comum com o destino da movimentaçãoReorganize as derivadas e tente novamente
SourcesNotInCommonParentAs entradas de origem do nó não estão todas sob um pai comumReorganize as origens e tente novamente
DataBundleLinkedToTwinO data bundle do nó está vinculado a um twinDesvincule o twin primeiro
DoesNotMeetHierarchyConstraintsA movimentação viola uma regra de hierarquia específica do tipoVerifique quais tipos filhos o pai de destino permite
MoveNodeFailedA movimentação foi rejeitada por um motivo sem código mais específicoTente novamente; contate o suporte se persistir

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

CódigoSignificadoAção sugerida
NodeHasDerivativesO nó tem saídas derivadas que precisam ser removidas primeiro, listadas em derivatives[]Exclua ou mova as derivadas listadas e tente novamente
NodeNotInDeletableStateO nó está processando ou falhou no processamento, conforme isProcessing / isFailedAguarde o processamento terminar, ou resolva a falha, e tente novamente
NodeHasBundleDependantsO data bundle do nó tem dependentes que impedem a exclusãoRemova os dependentes primeiro
DeleteNodeFailedA exclusão foi rejeitada por um motivo sem código mais específicoTente novamente; contate o suporte se persistir

Restaurar ou excluir definitivamente um nó da lixeira

Seção intitulada “Restaurar ou excluir definitivamente um nó da lixeira”
EndpointStatusCódigoSignificadoAção sugerida
PATCH /v1/nodes/{id}/restore409StorageLimitExceededRestaurar o nó excederia a cota de armazenamento da organizaçãoLibere espaço de armazenamento ou aumente a cota e tente novamente
DELETE /v1/nodes/{id}/hard409NoNodeRemovedO nó não foi encontrado na lixeira em um estado removívelVerifique o id do nó e seu estado na lixeira

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

CódigoSignificadoAção sugerida
ProcessingCostMismatchO custo de processamento enviado não corresponde mais ao custo atualBusque uma nova estimativa de custo e tente novamente
NoInputDataFoundForProcessingNenhum dado de entrada foi encontrado para processar este bundleVerifique se a sessão de upload foi finalizada antes de acionar o processamento
InsufficientProcessingCapacityNão há capacidade de processamento disponível no momentoTente novamente mais tarde
FailedToLaunchProcessingO job de processamento não pôde ser iniciadoTente novamente; contate o suporte se persistir
EndpointStatusCódigoSignificadoAção sugerida
POST /v1/site-files403StorageLimitExceededA cota de armazenamento da organização foi excedidaLibere espaço de armazenamento ou aumente a cota
POST /v1/site-files409FileAlreadyExistsJá existe um arquivo com a mesma identidadeUse o arquivo existente ou envie com um nome diferente
POST /v1/site-files/{fileId}/finalize400FileNotCompatibleO formato do arquivo enviado não é compatível com o tipo de arquivo esperadoVerifique o formato do arquivo e envie novamente
POST /v1/bundles/{bundleId}/upload-sessions403StorageLimitExceededA cota de armazenamento da organização foi excedidaLibere espaço de armazenamento ou aumente a cota
POST /v1/bundles/{bundleId}/upload-sessions/{sessionId}/files403StorageLimitExceededA cota de armazenamento da organização foi excedidaLibere espaço de armazenamento ou aumente a cota
POST /v1/twin/{contextId}/object/attachments409StorageLimitExceededA cota de armazenamento da organização foi excedidaLibere espaço de armazenamento ou aumente a cota
POST /v1/twin/{contextId}/object/attachments409FileAlreadyExistsJá existe um anexo com a mesma identidadeUse o anexo existente ou envie com um nome diferente

PUT /v1/groups/{groupId}/users/{userId} (adicionar um membro) — 409 Conflict

CódigoSignificadoAção sugerida
GroupHasSamlLinkO membership do grupo é gerenciado por uma integração SAML/SSOGerencie o membership pelo provedor SAML
CannotInviteToSCIMGroupO membership do grupo é gerenciado por provisionamento SCIMGerencie o membership pelo provedor SCIM
UserAlreadyMemberO usuário já é membro do grupoNenhuma ação necessária

DELETE /v1/groups/{groupId}/users/{userId} (remover um membro) — 409 Conflict

CódigoSignificadoAção sugerida
GroupHasSamlLinkO membership do grupo é gerenciado por uma integração SAML/SSOGerencie o membership pelo provedor SAML
CannotRemoveMemberFromSCIMGroupO membership do grupo é gerenciado por provisionamento SCIMGerencie o membership pelo provedor SCIM

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

CódigoSignificadoAção sugerida
DuplicateGroupNameJá existe um grupo com este nome na organizaçãoEscolha um nome diferente
CannotUpdateMemberFromSCIMGroupO membership do grupo é gerenciado por provisionamento SCIMGerencie o membership pelo provedor SCIM

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

CódigoSignificadoAção sugerida
CannotRemoveSCIMGroupO membership do grupo é gerenciado por provisionamento SCIMGerencie o membership pelo provedor SCIM
CannotRemoveOrganizationGroupO grupo não tem uma única divisão proprietáriaNão é possível resolver — este grupo não pode ser excluído por este endpoint

POST /v1/nodes/{nodeId}/invitations e POST /v1/invitations compartilham os mesmos códigos de erro.

StatusCódigoSignificadoAção sugerida
409UserAlreadyInvitedO usuário já tem um convite pendenteNenhuma ação necessária
409UserAlreadyMemberO usuário já é membroNenhuma ação necessária
403InvalidEmailDomainO domínio do e-mail convidado não é permitido para esta organizaçãoUse um endereço de e-mail em um domínio permitido
400CustomRoleNotAssignableToDataNodeA função personalizada especificada não pode ser atribuída a este nóEscolha uma função atribuível a este nó
400CustomRoleNotFoundA função personalizada especificada não existeVerifique o id da função
400AdminsitrativeRoleNotFound*A função administrativa especificada não existeVerifique o id da função
400AdministrativeRoleInvalidNodeUma função administrativa foi direcionada a um nó que não a suportaAtribua a função administrativa no nível da organização
422InvitationEmailRejectedO provedor de e-mail rejeitou permanentemente o endereço do destinatárioCorrija o endereço de e-mail antes de tentar novamente
503InvitationEmailNotSentO provedor de e-mail está temporariamente indisponível; nada foi persistidoTente novamente a requisição como está

* Este nome de código traz um erro de digitação na resposta atual da API — use-o exatamente como mostrado, não AdministrativeRoleNotFound.

Limite de taxa, autenticação e controle de acesso

Seção intitulada “Limite de taxa, autenticação e controle de acesso”

Um 403 pode vir de qualquer uma das três camadas de controle de acesso descritas em Primeiros passos — Modelo de segurança: escopos OAuth, funções por nó e acesso a conteúdo. As três atualmente compartilham o mesmo código de status, e a maioria compartilha o mesmo corpo genérico, então trate um 403 como “não autorizado por um destes motivos” em vez de assumir que é sempre um problema de escopo.

StatusCódigoSignificado
429rate_limitedO bucket de requisições da organização está esgotado — veja Limites de taxa
401not_authenticatedA requisição não tem um bearer token, ou o token não pôde ser interpretado
401invalid_tokenA verificação de assinatura ou expiração do token falhou
403(sem código — mensagem: "Insufficient OAuth scopes")O token não tem um escopo que a operação exige — veja Escopos OAuth
403(sem código — mensagem: "Forbidden resource")A função ou o acesso a conteúdo do chamador neste nó não permite a ação, ou a organização atingiu um limite de licenciamento/vagas — o corpo não distingue qual dos dois
403errorCode: "SSORestrictedResource"Este recurso é restrito a chamadores autenticados por uma sessão específica de SSO/provedor de identidade
  • Consulte a referência da API para os esquemas completos de requisição e resposta de cada operação.