> ## 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    |
