InferNode
| HTTP | type | code | Acción |
|---|
| 400 | invalid_request_error | parameter_not_supported | Campo faltante, fuera de rango o no admitido por ese modelo (param lo nombra). |
| 400 | invalid_request_error | provider_invalid_request | El prompt más max_tokens pasan del context_window del modelo; el mensaje trae la cuenta. Baja max_tokens o acorta el prompt (Contexto excedido). |
| 401 | authentication_error | identity.invalid_token | Falta la cabecera Authorization o no tiene la forma Bearer <llave>. |
| 401 | authentication_error | identity.unauthorized | La llave no existe, fue revocada, o la cuenta u organización están suspendidas. Genera una nueva o contacta al administrador. |
| 402 | billing_error | insufficient_credits | Sin créditos. Contacta al administrador. |
| 403 | permission_error | | La llave no tiene acceso al modelo o recurso. |
| 404 | not_found_error | model_not_found | Usa un nombre de GET /v1/models. |
| 429 | rate_limit_error | rate_limit_exceeded | Espera Retry-After segundos; details.dimension indica el contador (rpm, rpd, tpm, tpd, ipm). |
| 502 | provider_error | | El proveedor falló. Reintenta con espera exponencial. |
| 503 | provider_error | provider_circuit_open | Ese modelo falló varias veces seguidas y InferNode dejó de enviarle peticiones por un momento; el mensaje dice cuánto esperar (retry after 30s). Reintenta después de ese tiempo o cambia de modelo. |
| 504 | provider_error | provider_timeout | El modelo no respondió a tiempo; el gateway sigue arriba. Cambia de modelo o reintenta más tarde (InferNode no responde). |
| 503 | maintenance_error | | Mantenimiento. Reintenta más tarde. |
Toda respuesta de error incluye request_id; cítalo al reportar.
Lotes
Al subir el archivo o manejar el lote (Procesar peticiones en lote):
| HTTP | type | code | Acción |
|---|
| 400 | invalid_request_error | file_purpose_invalid | Sube con purpose=batch, el único valor que admite, y crea el lote con un archivo subido así. |
| 400 | invalid_request_error | invalid_file_format | El archivo no empieza por JSON. Revisa que sea JSONL. |
| 400 | invalid_request_error | file_in_use | Estás borrando un archivo de entrada que usa un lote vivo. Espera a que termine. |
| 400 | invalid_request_error | storage_quota_exceeded | Sin espacio de almacenamiento. Borra archivos que ya no uses. |
| 400 | invalid_request_error | batch_not_cancellable | El lote ya está en finalizing o terminó. |
| 404 | not_found_error | file_not_found / batch_not_found | El identificador no existe, es de otra organización o se borró. |
| 413 | invalid_request_error | file_too_large | El archivo pasa de 100 MiB. Pártelo en varios lotes. |
| 429 | rate_limit_error | too_many_active_batches | Ya tienes en marcha los lotes que permite el plan. Espera a que terminen. |
| 503 | internal_error | storage_unavailable | El almacenamiento no respondió. Reintenta. |
Cuando el problema es del archivo entero, el lote termina en failed y errors.data trae hasta 100 causas: invalid_json_line, duplicate_custom_id, empty_file, too_many_tasks, url_mismatch, model_mismatch, model_not_found, model_not_batchable o enqueued_request_limit_exceeded.
Cuando el problema es de una línea, esta aparece en el archivo de errores con stream_not_supported, insufficient_credits, spending_cap_exceeded, authorization_revoked, model_not_found, batch_cancelled o batch_expired. Las líneas con batch_cancelled y batch_expired no se cobran.
Agentes y Flujos
| HTTP | code | Acción |
|---|
| 400 | invalid_query, invalid_body | Corrige parámetros o cuerpo. |
| 401 | unauthorized | Inicia sesión de nuevo o renueva el token. |
| 404 | agent_not_found, workflow_not_found | No existe, no es tuyo o fue eliminado. |
| 409 | agent_in_use | El agente está conectado a un flujo; desconéctalo antes de eliminar. |
| 409 | unpublished_changes | Publica antes de ejecutar. |
| 422 | channel_incomplete | Un canal no está configurado; revisa la pestaña Canales. |
Laboratorios (Frida)
| HTTP | code | Acción |
|---|
| 400 | LAB_INVALID_RESOURCES | Cantidad mal formada (16Gi, 500m, 24576) o talla y recursos a la vez. |
| 403 | | Solo el dueño puede eliminar o compartir. |
| 404 | | No existe o es de otro Cliente. |
| 409 | | Nombre duplicado o eliminación en curso. |
| 409 | LAB_RESIZE_REQUIRES_STOP | El cambio no cabe contra lo que corre; details nombra el eje y el notebook. Repite con stopRunningWorkloads: true si aceptas detenerlo. Si el mensaje dice que detener no bastaría, libera lo que ocupa el presupuesto (una ejecución de pipeline) antes. |
| 409 | LAB_CAPACITY_UNAVAILABLE | Al redimensionar hacia arriba: sin capacidad ahora. Espera o pide menos. |
| 409 | LAB_RESIZE_NOT_READY | El laboratorio está creándose o eliminándose. Espera a ready. |
| 409 | LAB_RESIZE_STOP_TIMED_OUT | Se detuvieron los notebooks pero el uso no bajó a tiempo; nada se aplicó. Reintenta. |
| 412 | LAB_RESIZE_STALE_VERSION | El If-Match es viejo: vuelve a leer el laboratorio y repite. |
| 422 | LAB_POLICY_UNAVAILABLE | Talla no ofrecida o recurso sobre el máximo; details indica recurso, pedido y límite. |
| 422 | LAB_CAPACITY_UNAVAILABLE | Al crear: sin capacidad ahora. Espera o pide una talla menor. |
| 422 | LAB_CEILING_EXCEEDED | Al redimensionar con recursos a medida: un eje supera el techo del plan; details trae eje, pedido y límite. |
| 422 | LAB_MEMBER_NOT_IN_ORGANIZATION, LAB_MEMBER_IS_OWNER, LAB_INVALID_ROLE | Al compartir: la persona no es del Cliente, es el dueño, o el rol no es editor. |
Mensajes en Studio