> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Lista de errores de Streaming Hub

> Busca los códigos de error de Streaming Hub, el estado HTTP que lleva cada uno y qué corregir en la solicitud que lo provocó.

**Formato del error**

Streaming Hub devuelve la mayoría de los errores como detalles de problema RFC 9457 con el tipo de medio `application/problem+json`. Solo una respuesta con ese tipo de medio lleva el envelope siguiente:

<CodeGroup>
  ```json JSON theme={null}
  {
    "type": "https://errors.lerian.studio/v1/not_found",
    "title": "Not Found",
    "status": 404,
    "detail": "subscription not found",
    "code": "not_found"
  }
  ```
</CodeGroup>

**Definiciones de los campos**

* **`type`** – Un URI estable y con versión que identifica el tipo de problema. Streaming Hub lo construye como `https://errors.lerian.studio/v1/<code>` y lo omite para un problema al que no asigna código.
* **`title`** – Un resumen breve y legible para personas, que es el texto del estado HTTP (por ejemplo, `Not Found`).
* **`status`** – El código de estado HTTP, reflejado en el cuerpo.
* **`detail`** – Una explicación segura para quien llama, sobre esta ocurrencia. En una respuesta `5xx`, Streaming Hub reemplaza el detalle por la cadena fija `internal error`, de modo que no se filtra ninguna causa interna.
* **`code`** – El token estable, de baja cardinalidad y legible por máquina sobre el que ramificar la lógica. Una falla de validación de la solicitud, y una solicitud que no coincide con ninguna ruta, llegan con este campo vacío. En ese caso, ramifica sobre `status`. En ese caso, ramifica sobre `status`.

## Errores del cliente

***

| `code` | Descripción | Estado |
| - | - | - |
| `bad_request` | La solicitud está mal formada, o falta una entrada obligatoria. | 400 |
| `missing_idempotency_key` | La solicitud omite el header `X-Idempotency` obligatorio. Streaming Hub rechaza la solicitud antes de cualquier escritura. | 400 |
| `invalid_error_class` | El filtro `error_class` en el listado de dead-letter tiene un valor fuera de las clases de transporte reconocidas. Proporciona una clase reconocida. | 400 |
| `invalid_cursor` | El cursor `after` en el listado de dead-letter no es un identificador de fila bien formado. Reinicia el listado. | 400 |
| `unauthorized` | La autenticación falló, o la solicitud no lleva un contexto de tenant confiable. El cuerpo es el mismo para cada causa que el hub responde por sí mismo. | 401 |
| `forbidden` | La credencial es válida, pero el ámbito delegado que presenta la solicitud no coincide con el claim de ámbito del token retransmitido. | 403 |
| `not_found` | El recurso está ausente, eliminado de forma lógica, en poder de otro tenant, o es de otro tipo. El token es el mismo para cada uno de estos casos. | 404 |
| `idempotency_conflict` | Hay una solicitud duplicada en curso, o la misma clave `X-Idempotency` llegó con una huella de solicitud diferente. | 409 |
| `validation_error` | La solicitud lleva una falla de forma corregible por quien llama: un `sink_kind` incorrecto, o un endpoint, schema o valor de `event_types` inválido. | 422 |
| `inline_sink_config_forbidden` | Una solicitud de creación llevaba material `sink_config` o `credential` en línea. Envía una credencial de cola a través de `PUT /v1/subscriptions/{id}/credential` en su lugar. | 422 |
| `endpoint_blocked` | El host resuelto está bloqueado, es privado o es una dirección de metadatos, o la URL lleva información de usuario incorporada. Proporciona un endpoint público que no contenga ninguna credencial. | 422 |
| `no_secret_to_rotate` | Una rotación de secreto tuvo como destino una suscripción que no tiene ningún secreto de firma. | 422 |
| `probe_unsupported_for_sink_kind` | El tipo de sink no tiene ninguna prueba registrada para esta operación. Los tipos de sink de este grupo verifican a través de sus propias superficies. | 422 |
| `rate_limited` | El límite de lectura entrante por tenant denegó la solicitud. Espera y vuelve a intentarlo. | 429 |

<Note>
  La capa de autenticación y autorización se ejecuta antes que Streaming Hub. Un `401` o un `403` que rechaza esta capa devuelve un cuerpo de texto plano, no un documento de problema. Ese cuerpo no lleva ningún `code`.
</Note>

## Errores del servidor

***

| `code` | Descripción | Estado |
| - | - | - |
| `internal_error` | Una falla de infraestructura. Streaming Hub reemplaza `detail` por `internal error` y registra la causa. | 500 |
