Erros
Todos os códigos de erro da Direct API, o que significam e se vale tentar de novo, incluindo o que fazer quando uma chamada paga falha com um 5xx.
Todo erro tem o mesmo corpo. Decida pelo status HTTP e pelo code; mostre description ou error.message às pessoas.
{
"description": "Human-readable explanation, safe to log.",
"code": "machine_readable_code",
"data": { "request_id": "…", "…": "…" },
"error": { "error_code": "…", "message": "…" }
}Toda resposta, de sucesso ou de erro, traz X-Request-Id. Inclua-o quando entrar em contato com o suporte.
Códigos de erro
| HTTP | code | Significado | Tentar de novo |
|---|---|---|---|
| 400 | invalid_request | JSON malformado, um campo desconhecido no corpo, ou input não passa no schema da ferramenta (cada campo inválido é indicado) | não, corrija a solicitação |
| 401 | invalid_api_key | chave ausente, malformada, revogada ou expirada | não |
| 402 | insufficient_credits | a organização não consegue pagar pela chamada | após uma recarga |
| 402 | api_key_credit_limit_reached | a chamada excederia o limite diário, mensal ou total da chave (data.period indica qual) | após o período reiniciar ou o limite ser aumentado |
| 402 | subscription_paused | a assinatura da organização está pausada | após ela ser retomada |
| 402 | payment_required | a assinatura da organização está com pagamento em atraso | após o pagamento ser concluído |
| 403 | direct_api_disabled | a Direct API não está ativada para esta organização | não, entre em contato com a Morphic |
| 403 | insufficient_scope | a chave não tem o escopo de que esta ferramenta precisa (data.required_scopes) | não, use outra chave |
| 403 | plan_upgrade_required | o modelo ou a funcionalidade não faz parte do seu plano | não |
| 403 | tool_not_available | a ferramenta cobra créditos e as ferramentas pagas ainda não foram ativadas para a sua organização (data.tool a indica); o seu contato na Morphic as ativa | não |
| 403 | model_disabled_by_organization | um administrador da organização desativou este modelo, resolução ou opção de áudio e não o liberou para a API | não, fale com o seu administrador |
| 404 | not_found | ferramenta, geração ou webhook desconhecido, ou fora do alcance desta chave | não |
| 409 | idempotency_conflict | Idempotency-Key reutilizado com outro corpo ou outra ferramenta | não, use uma chave nova |
| 409 | idempotency_in_progress | a solicitação original com esta chave ainda está em execução | sim, após um segundo |
| 409 | idempotency_outcome_unknown | a solicitação original com este Idempotency-Key falhou ou nunca respondeu depois de possivelmente ter sido executada, então o resultado dela é desconhecido | não: verifique o resultado e depois use uma chave nova |
| 413 | payload_too_large | corpo acima de 1 MB | não |
| 422 | tool_refused | a entrada está bem formada, mas não pode ser executada; nada foi cobrado | não, altere a entrada |
| 429 | rate_limited | um limite de taxa foi atingido | sim, após Retry-After |
| 500 | internal_error | falha nossa | em uma chamada gratuita, sim; em uma chamada paga, veja abaixo |
| 503 | service_unavailable | sobrecarga temporária ou manutenção | em uma chamada gratuita, sim, com espera progressiva; em uma chamada paga, veja abaixo |
| 504 | tool_timed_out | a ferramenta não respondeu em 60 s; uma chamada que inicia gerações pode já tê-las iniciado | em uma chamada gratuita, sim; em uma chamada paga, veja abaixo |
Um 422 tool_refused indica o campo, o valor e os valores que funcionariam; veja Recusas da ferramenta. Uma geração que falha depois de iniciada informa o seu próprio error.error_code no objeto de geração, e a cobrança dela é reembolsada.
Chamadas pagas que respondem 5xx
Uma chamada paga que responde 500, 503 ou 504 pode ter iniciado trabalho e cobrado por ele antes de falhar. Repeti-la com o mesmo Idempotency-Key nunca a executa duas vezes: a nova tentativa responde 409 idempotency_outcome_unknown.
- Verifique o que a chamada fez:
list_generations, ouGET /v1/direct/usagefiltrado por horário. - Envie um novo
Idempotency-Keyapenas para o trabalho que não foi iniciado.
Quando nenhuma resposta chegou (uma conexão interrompida), tente de novo com a mesma chave. Você recebe a resposta armazenada, ou 409 idempotency_in_progress enquanto ela ainda estiver em execução. Veja Idempotência.
Se você tiver algum problema ou alguma dúvida, entre em contato. Teremos prazer em ajudar. Escreva para nós em support@morphic.com.