API

Catálogo de erros

Cada código de erro do ValorBrain com causa e ação, gerado do catálogo do engine.

Gerado da matriz de credenciais · versão 1 · sha 9d2b630103a5. Não edite à mão: a fonte é src/credential-matrix.ts no engine.

Combine pelo código, não pelo texto. O código vem no campo error (ou code) do JSON, no ?error= de um redirect OAuth ou no error= do WWW-Authenticate. Um teste do engine garante que todo código que o servidor devolve está nesta lista.

Códigos

CódigoHTTPSuperfícieCausaO que fazer
missing_bearer401MCPRequisição ao MCP sem Authorization: Bearer.Envie um token vbm_ ou siga o WWW-Authenticate para a descoberta OAuth.
invalid_token401MCP, REST, Ingest do SaaS, OAuthToken desconhecido, revogado ou vencido (ou, no MCP, um segredo sem prefixo).Crie um token novo em Configurações → Tokens MCP ou refaça o signup/consentimento.
wrong_credential_type401MCPChave REST (vb_, vb_agent_) ou de ingest (fk_) enviada ao MCP.Use o mcp_token (vbm_…) no MCP e guarde a api_key para o REST.
agent_key_required401RESTA reemissão do token MCP do signup (POST /api/v1/agents/mcp-token) recebeu outra credencial que não a vb_agent_ do workspace.Chame a rota com a api_key (vb_agent_…) que o signup devolveu.
insufficient_scope403REST, Ingest do SaaS, Ferramenta MCPO token é válido mas não tem o escopo exigido pela rota ou ferramenta.Emita um token com o escopo indicado em required_scope (ou write no ingest).
credential_required403RESTPurga de documentos sem credencial bearer.Envie o token do tenant; dry_run=true funciona sem credencial.
admin_required403RESTOperação que exige papel ADMIN do tenant.Repita com o token de um administrador do workspace.
attestation_required403RESTAto de autoridade Classe A sem X-VB-Attestation.Envie um envelope de atestação interativo e válido para esta requisição.
cap_human_forbidden400RESTMandato com cap=human: aprovação humana não se delega.Use um teto abaixo de human.
identity_denied200Ferramenta MCPO token tem scoped_access e a ferramenta pediu uma coleção fora da lista permitida.Peça ao dono do workspace para incluir a coleção no token.
scope_denied200Ferramenta MCPA ferramenta exige um escopo que o token MCP não tem.Emita um token com o escopo da ferramenta (Configurações → Tokens MCP).
outside_keyspace200, 403REST, Ferramenta MCPCredencial de integração tentou gravar fora do seu keyspace: um fato com chave fora dele, ou qualquer escrita que não seja fato (documento, mensagem, estado). Nada foi gravado.Grave só fatos (POST /api/v1/keyed-facts ou upsert_keyed_fact) com chaves do keyspace; para outro keyspace, peça ao admin para ampliar a integração.
profile_identity_unavailable200Ferramenta MCPPerfil de plugin sem identidade de usuário resolvida.Conecte com um token ligado a um usuário do workspace.
mcp_init_failed403, 500MCPO token pertence a outro destino (audience) ou o transporte MCP não subiu.Use o token da instância certa; em 500, tente de novo.
internal_error500MCPFalha inesperada ao atender a requisição MCP.Tente de novo em instantes; se persistir, abra um chamado com o horário da requisição.
invalid_tenant_header400RESTX-Tenant-ID não é um UUID de tenant.Remova o header (o tenant vem da credencial) ou envie um UUID válido.
invalid_user_header400RESTX-User-ID não é um UUID de usuário.Remova o header ou envie o UUID do usuário.
invalid_member_id400RESTmember_id não é um UUID de membro.Envie o UUID do membro do time.
not_document_owner403RESTPOST /documents sobre documento privado de outro usuário, ou mudando a sensibilidade de documento com dono, sem ser o dono com a própria credencial, admin do tenant ou a plataforma; também PUT/DELETE de foundation em documento privado alheio. Nada foi gravado.Grave com a credencial do dono, de um admin do tenant ou da plataforma, ou use outro caminho.
sensitivity_change_requires_admin403RESTPOST /documents mudando a sensibilidade de um documento sem dono: rebaixar o abre a tokens restritos, elevar tranca o time fora. Nada foi gravado.Peça a um admin do tenant, ou grave sem mudar a sensibilidade.
integration_not_minted_here400RESTPOST /api/v1/mcp/tokens com credential_kind: integration: a credencial de integração nasce com o mandato dela, em outra rota. Nada foi criado.Crie a integração em POST /api/v1/authority/integrations, ou peça personal ou gateway aqui.
user_not_in_tenant400REST, OAuthToken MCP (ou consentimento OAuth pelo app) pedido para um user_id que não é membro do tenant.Provisione o usuário antes de emitir o token ou aprovar o consentimento.
email_already_registered409RESTO e-mail do administrador já existe em outro tenant.Entre com a conta existente.
user_id_conflict409RESTO e-mail já está ligado a outro id de usuário no tenant.Use o engine_user_id devolvido.
rate_limited429OAuthRegistro dinâmico OAuth acima do limite por IP.Aguarde o Retry-After e reutilize o client_id já registrado.
answer_burst_exceeded429RESTRespostas demais do tenant numa janela curta.Aguarde o Retry-After.
answer_cap_reached429RESTTeto mensal de respostas definido pelo cliente foi atingido.Aumente ou remova o teto nas configurações.
not_found404, 200REST, Ferramenta MCPDocumento, arquivo ou lacuna não existe neste tenant.Confira o docid/caminho; similarFiles sugere nomes próximos.
ambiguous409RESTO nome casa com mais de uma entidade.Escolha um dos candidates e repita com o id.
ambiguous_docid400RESTO prefixo de docid casa com mais de um documento.Use um prefixo mais longo.
confirmation_required400RESTPurga de coleção inteira sem confirm igual ao alvo.Rode dry_run=true, depois repita com confirm e credencial de admin.
superseded_document404RESTO docid é uma versão substituída.Leia read_at ou o documento vivo em superseded_by.
supersedes_self400REST, Ferramenta MCPsupersedes aponta para o próprio documento sendo escrito.Remova o alvo: reescrever o mesmo caminho já é uma revisão.
supersedes_invalid400REST, Ferramenta MCPLista supersedes grande demais ou com alvo malformado.Envie até o máximo de alvos, cada um docid ou caminho.
supersedes_not_found400REST, Ferramenta MCPUm alvo de supersedes não existe.Confira o docid ou caminho do documento substituído.
supersedes_ambiguous400REST, Ferramenta MCPUm alvo de supersedes casa com mais de um documento.Use o docid completo ou o caminho.
revision_conflict409RESTexpected_revision não é a revisão atual.Releia o documento (current_revision) e reaplique a mudança.
update_failed200RESTUm item do lote não pôde ser atualizado.Repita só os itens com ok: false.
resolve_failed200Ferramenta MCPA lacuna de conhecimento não pôde ser marcada como resolvida.Tente de novo em instantes; se persistir, abra um chamado com o horário da requisição.
approval_required403, 200REST, Ferramenta MCPEscrita de autoridade mais fraca que o valor vencedor; vira proposta.Peça aprovação humana ou corrija com assert_authority_correction.
pii_defense_block422REST, Ferramenta MCPEscrita recusada: PII de alto risco que não pôde ir para o cofre.Remova o dado sensível ou guarde-o com secrets.
invalid_request400, 405OAuthParâmetro ausente ou inválido (PKCE S256, redirect_uri, corpo do formulário).Corrija a requisição conforme error_description.
invalid_client401, 400OAuthclient_id desconhecido.Registre o cliente de novo em /oauth/register.
invalid_client_metadata400OAuthMetadados do registro dinâmico inválidos.Corrija o corpo do /oauth/register.
invalid_redirect_uri400OAuthredirect_uri fora do permitido (http só em loopback; esquemas perigosos recusados).Use https, loopback ou um esquema próprio do app.
invalid_grant400OAuthCódigo expirado, já usado, de outro cliente, PKCE errado ou asserção EMA inválida.Recomece o fluxo de autorização.
invalid_scope400, 302OAuthEscopo pedido fora de read write.Peça read, write ou ambos.
invalid_target400, 302OAuthresource (RFC 8707) não é um recurso deste emissor.Use a URL do MCP ou omita resource.
access_denied302OAuthA pessoa recusou o consentimento.Nada a fazer; ofereça tentar de novo.
unsupported_grant_type400OAuthgrant_type diferente de authorization_code ou jwt-bearer.Use authorization_code com PKCE (ou jwt-bearer no EMA).
unsupported_response_type302OAuthresponse_type diferente de code.Use response_type=code.
method_not_allowed405OAuthEndpoint OAuth chamado sem POST.Use POST.
server_error500OAuthFalha interna no servidor de autorização.Tente de novo em instantes; se persistir, abra um chamado com o horário da requisição.
invalid_consent_session400OAuthconsent_session adulterada, assinada por outra chave ou malformada.Comece a conexão de novo pelo app (novo /oauth/authorize).
consent_session_expired400OAuthA consent_session passou dos 15 minutos.Comece a conexão de novo pelo app.
consent_session_used409OAuthEste consentimento já foi decidido (aprovação ou negação é de uso único).Comece a conexão de novo pelo app.
tenant_inactive403OAuthO workspace da sessão não está com billing_status ativo.Regularize a assinatura do workspace e aprove de novo.
unauthorized401OAuthEndpoint interno de consentimento chamado sem a credencial de plataforma (só o SaaS chama).Clientes não chamam este endpoint: use /oauth/authorize.

Respostas sem código

Alguns portões ainda respondem só com uma mensagem fixa no campo error. A mensagem é estável e pode ser comparada literalmente.

CódigoHTTPSuperfícieCausaO que fazer
Unauthorized401RESTREST sem bearer, ou com uma credencial que não é do REST (fk_, segredo de administração).Envie Authorization: Bearer vbm_… (ou a vb_agent_ da conta).
Unauthorized: admin secret required401RESTRota de administração da plataforma.Não é rota de cliente; use as rotas públicas do REST.
Forbidden: admin credential required for money routes403RESTRota de crédito ou assinatura chamada com token de tenant.Não é rota de cliente; planos se mudam pelo app.
Forbidden: /metrics is served only to local scrapers403REST/metrics fora da rede local e sem o token de métricas.Não é rota de cliente.
Rate limit exceeded — please slow down429RESTLimite por credencial (ou por IP, em rota pública) estourado.Aguarde retry_after_ms e reduza a cadência.

Nesta página