application/problem+json, com um code estável. Os códigos são SF- e quatro dígitos. Cite o código ao reportar um problema. A visão geral da API descreve o envelope e as convenções que toda operação compartilha.
Códigos que o serviço responde
Os membros
detail e errors[] nomeiam o que falhou. Leia-os antes de agir conforme a linha abaixo.
| Código | Status HTTP | Quando o serviço responde | O que fazer | Nova tentativa |
|---|---|---|---|---|
| SF-0001 | 422 | Nenhuma versão de contrato está registrada para o producer, o namespace, o tipo de fato e a versão de schema da requisição (uma versão obsoleta responde SF-0019). | Registre a versão do contrato no pipeline de deploy, antes do rollout do producer, e envie a requisição de novo. | Após a correção |
| SF-0002 | 409 | Já existe uma versão de contrato com a mesma identidade e conteúdo diferente. | Versões publicadas são imutáveis: aumente a versão do schema, usando as diferenças listadas em errors[] para escolher o aumento. | Não |
| SF-0003 | 409 | A nova versão minor ou patch não é compatível com as versões já registradas para o tipo de fato. | Corrija o schema para que continue compatível, ou registre a mudança como uma nova versão major. | Não |
| SF-0004 | 422 | O schema do contrato não é um JSON Schema válido e autocontido, ou uma referência declarada pede uma correlação que o tipo de referência não permite. | Dê ao schema um $id absoluto, mantenha todo $ref dentro do documento (#/$defs) e corrija os membros listados em errors[]. | Não |
| SF-0005 | 403 | O namespace pertence a outro serviço producer, ou o fato é enviado para um producer e um namespace que o seu serviço não registrou. | Registre e envie apenas em um namespace que o seu serviço possui, com a credencial de serviço do producer dono. | Não |
| SF-0006 | 422 | O envelope do fato ou a consulta está malformado: falta um membro, ele tem formato errado ou não faz parte do envelope, ou o período de uma listagem está vazio. | Corrija os membros listados em errors[] e envie a requisição de novo. | Não |
| SF-0007 | 422 | O payload do fato (data) não valida contra o JSON Schema do contrato registrado. | Corrija os campos do payload listados em errors[] para que correspondam ao contrato. | Não |
| SF-0008 | 422 | O fato traz uma referência que o contrato não declara, uma chave de escopo que o tipo de referência não declara, ou mais de cinco referências distintas de correlação exata. | Envie apenas as referências e as chaves de escopo que o contrato e seus tipos de referência declaram. | Não |
| SF-0009 | 404 | Não existe fluxo com o identificador informado. | Confira o identificador: um identificador absorvido por um merge ainda resolve, um desconhecido não. | Não |
| SF-0010 | 404 | Nenhum fluxo traz uma referência com o tipo, o valor e o escopo informados. | Confira o tipo de referência, o valor e cada chave de escopo da consulta. | Não |
| SF-0011 | 409 | Mais de um fluxo traz a referência, então a busca não consegue escolher um. | Escolha um fluxo em candidates[] e leia-o pelo flowAggregationId. | Não |
| SF-0012 | 413 | O corpo da requisição é maior que o limite de tamanho configurado (256 KiB por padrão para um envelope de fato). | Reduza o corpo da requisição. Para um fato, envie uma declaração sobre uma ocorrência, não um documento. | Não |
| SF-0013 | 401 | A requisição não traz um bearer token válido. | Envie um bearer token válido emitido para o tenant. Um producer usa a sua credencial de serviço. | Após a correção |
| SF-0014 | 403 | O token é válido, mas não tem uma permissão que a operação exige, como catalog:reserved, que todo registro de catálogo precisa porque todo nome de catálogo fica sob um prefixo reservado. | Peça ao administrador do tenant que conceda a permissão que a operação lista e envie a requisição de novo. | Após a correção |
| SF-0015 | 500 | O serviço falhou por um motivo que a requisição não causou. | Tente de novo mais tarde com a mesma requisição. As escritas são idempotentes, então repetir é seguro. | Sim, mais tarde |
| SF-0016 | 409 | Um fato com o mesmo factId já está armazenado com conteúdo diferente. | Fatos são imutáveis: envie uma ocorrência alterada como um novo fato com um novo factId e verifique o producer que reutilizou o identificador. | Não |
| SF-0017 | 404 | O catálogo não tem versão de contrato com o producer, o namespace, o tipo de fato e a versão de schema informados. | Confira os quatro segmentos do caminho e registre a versão a partir do pipeline de deploy, se ela não existir. | Não |
| SF-0018 | 422 | O hash de conteúdo enviado com o contrato não corresponde ao conteúdo que ele acompanha. | Recalcule o hash de conteúdo sobre o mesmo conteúdo que você está enviando. | Não |
| SF-0019 | 422 | A versão do contrato está obsoleta e não aceita mais fatos. | Envie o fato contra uma versão ativa do mesmo tipo de fato. | Não |
| SF-0020 | 403 | Um operador desativou a emissão de fatos para este tenant. | Mantenha o fato pendente e tente de novo mais tarde. Os fatos voltam a ser aceitos quando um operador ativa a emissão. | Sim, mais tarde |
| SF-0021 | 422 | O contrato declara um tipo de referência que o catálogo de tipos de referência não tem. errors[] lista cada tipo ausente. | Peça ao dono que registre cada tipo de referência antes de você registrar o contrato que o usa. | Após a correção |
| SF-0022 | 409 | Um tipo de referência com o mesmo nome já está registrado com outra definição. | Tipos de referência são imutáveis: use um novo nome de tipo para um novo significado. | Não |
| SF-0023 | 422 | O nome do namespace ou do tipo de referência não começa com um dos prefixos reservados do deploy. | Use um nome cujo primeiro segmento separado por ponto seja um prefixo reservado do deploy. | Não |
| SF-0024 | 422 | Os fluxos são listados por um tipo de referência que não está registrado ou foi registrado com searchable: false. | Liste fluxos apenas por um tipo de referência registrado com searchable: true, ou leia o único fluxo de uma referência exata com findFlowByReference. | Não |
| SF-0025 | 422 | Uma anotação x-sensitivity ou x-mask no schema do contrato está mal posicionada ou traz um valor desconhecido. | Declare x-sensitivity (masked, hashed ou encrypted) apenas em uma propriedade string alcançada por properties, e x-mask apenas junto de masked ou encrypted. | Não |
| SF-0026 | 422 | A versão do contrato que o fato nomeia traz anotações de sensibilidade malformadas, então o payload não pode ser protegido e nada é armazenado. | Registre uma versão corrigida do contrato e envie o fato contra ela. | Após a correção |
| SF-0027 | 403 | No modo multi-tenant, a credencial não nomeia um serviço producer, então não dá para decidir quem é dono do namespace. | Use a credencial de serviço do producer para o tenant. Faça a rotação de uma credencial emitida antes de ela trazer o nome do producer. | Após a correção |
| SF-0028 | 403 | No modo multi-tenant, a credencial de serviço do producer foi criada sem nomear o seu serviço producer. | Peça ao administrador do tenant que recrie a credencial com o serviço producer definido. Fazer a rotação da mesma credencial não resolve. | Após a correção |
| SF-0090 | 400 | A requisição está malformada, como um corpo que não é JSON válido. | Corrija a sintaxe da requisição e envie de novo. | Não |
| SF-0091 | 404 | O recurso pedido não existe, como um tipo de referência ou um caminho desconhecido. | Confira o caminho e o nome do recurso. Um tipo de referência só existe depois que o dono o registra. | Não |
| SF-0092 | 422 | A requisição não corresponde ao schema de requisição da operação, como um membro inesperado ou um cursor inválido. | Corrija os membros listados em errors[] para que a requisição corresponda ao schema da operação. | Não |
| SF-0093 | 409 | A requisição conflita com o estado atual de um recurso. | Leia o recurso de novo e envie uma requisição coerente com o estado atual dele. | Não |
| SF-0094 | 503 | O serviço não consegue responder agora: está iniciando, o serviço de autorização está temporariamente indisponível ou as chaves de correlação do fato ficaram ocupadas. | Tente de novo mais tarde com a mesma requisição e respeite Retry-After quando a resposta o trouxer. | Sim, mais tarde |
| SF-0095 | 429 | O chamador enviou mais requisições do que o rate limit permite. | Espere o intervalo de Retry-After antes da próxima requisição. | Sim, mais tarde |
| SF-0096 | 400 | A requisição foi recusada por um motivo do lado do cliente que nenhum código mais específico descreve. A resposta mantém o status HTTP desse motivo, como 405 ou 415. | Leia o membro detail, corrija a requisição e envie de novo. | Não |

