Errores
Cada código de error de la Direct API, qué significa y si conviene reintentar, incluido qué hacer cuando una llamada de pago falla con un 5xx.
Todos los errores tienen el mismo cuerpo. Ramifique según el estado HTTP y code; muestre description o error.message a las personas.
{
"description": "Human-readable explanation, safe to log.",
"code": "machine_readable_code",
"data": { "request_id": "…", "…": "…" },
"error": { "error_code": "…", "message": "…" }
}Toda respuesta, correcta o de error, lleva X-Request-Id. Inclúyalo cuando contacte con soporte.
Códigos de error
| HTTP | code | Significado | Reintentar |
|---|---|---|---|
| 400 | invalid_request | JSON mal formado, un campo desconocido en el cuerpo, o input no cumple el esquema de la herramienta (se nombra cada campo incorrecto) | no, corrija la solicitud |
| 401 | invalid_api_key | clave ausente, mal formada, revocada o caducada | no |
| 402 | insufficient_credits | la organización no puede pagar la llamada | tras una recarga |
| 402 | api_key_credit_limit_reached | la llamada superaría el límite diario, mensual o total de la clave (data.period indica cuál) | cuando se reinicie el periodo o se aumente el límite |
| 402 | subscription_paused | la suscripción de la organización está en pausa | cuando se reanude |
| 402 | payment_required | la suscripción de la organización tiene un pago vencido | cuando se complete el pago |
| 403 | direct_api_disabled | la Direct API no está activada para esta organización | no, contacte con Morphic |
| 403 | insufficient_scope | la clave no tiene el permiso que necesita esta herramienta (data.required_scopes) | no, use otra clave |
| 403 | plan_upgrade_required | el modelo o la función no están incluidos en su plan | no |
| 403 | tool_not_available | la herramienta cobra créditos y las herramientas de pago aún no están activadas para su organización (data.tool la nombra); su contacto en Morphic las activa | no |
| 403 | model_disabled_by_organization | un administrador de la organización desactivó este modelo, esta resolución o esta opción de audio y no la ha permitido para la API | no, consulte a su administrador |
| 404 | not_found | herramienta, generación o webhook desconocidos, o fuera del alcance de esta clave | no |
| 409 | idempotency_conflict | Idempotency-Key reutilizado con otro cuerpo u otra herramienta | no, use una clave nueva |
| 409 | idempotency_in_progress | la solicitud original con esta clave sigue en curso | sí, tras un segundo |
| 409 | idempotency_outcome_unknown | la solicitud original con este Idempotency-Key falló o nunca respondió después de haberse podido ejecutar, así que su resultado se desconoce | no: compruebe su resultado y luego use una clave nueva |
| 413 | payload_too_large | cuerpo de más de 1 MB | no |
| 422 | tool_refused | la entrada está bien formada pero no puede ejecutarse; no se cobró nada | no, cambie la entrada |
| 429 | rate_limited | se alcanzó un límite de frecuencia | sí, tras Retry-After |
| 500 | internal_error | un fallo nuestro | una llamada gratuita, sí; una de pago, vea más abajo |
| 503 | service_unavailable | sobrecarga temporal o mantenimiento | una llamada gratuita, sí, con espera progresiva; una de pago, vea más abajo |
| 504 | tool_timed_out | la herramienta no respondió en 60 s; una llamada que inicia generaciones puede haberlas iniciado igualmente | una llamada gratuita, sí; una de pago, vea más abajo |
Un 422 tool_refused indica el campo, el valor y los valores que habrían funcionado; consulte Rechazos de herramientas. Una generación que falla después de iniciarse indica su propio error.error_code en el objeto de generación, y su cobro se reembolsa.
Llamadas de pago que responden 5xx
Una llamada de pago que responde 500, 503 o 504 puede haber iniciado trabajo y haberlo cobrado antes de fallar. Reintentarla con el mismo Idempotency-Key nunca la ejecuta dos veces: el reintento responde 409 idempotency_outcome_unknown.
- Compruebe lo que hizo la llamada:
list_generations, oGET /v1/direct/usagefiltrado por fecha y hora. - Envíe un
Idempotency-Keynuevo solo para el trabajo que no se inició.
Cuando no llegó ninguna respuesta (una conexión interrumpida), reintente con la misma clave. Obtendrá la respuesta guardada, o 409 idempotency_in_progress mientras siga en curso. Consulte Idempotencia.
Si tiene algún problema o alguna pregunta, no dude en ponerse en contacto con nosotros. Estaremos encantados de ayudarle. Escríbanos a support@morphic.com.