# Códigos de error: Alta de entidades y usuarios iniciales

> Crear una entidad nueva con sus roles, usuarios e identidades de servicio (`src/entity-provisioning/`). Protegido por clave de aprovisionamiento.

**Cómo se detecta (toda la familia):** La respuesta del alta (`code`).

**Qué hacer (toda la familia):** Corregir el pedido (usuarios duplicados, supervisor inexistente, empleado de otra entidad) y repetir. Los de clave: configuración del servidor.

Lo que un código no dice lo hereda de la familia.

## `actor_user_id_invalid`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** `completeAuthz` recibió un `actorUserId` que no es un entero positivo (400).

## `authz_completion_actor_mismatch`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** `completeAuthz` recibió `auth` cuyo `id` no coincide con `actorUserId`: la nómina de Zauru se lee con la sesión de quien completa y tiene que ser la misma persona (400).

## `authz_completion_tx_required`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** `completeAuthz` recibió un `manager` sin transacción activa (400). Sin `manager` abre la suya.

## `entity_id_invalid`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** La consulta o el cierre del estado de permisos de una entidad nueva recibió un id de entidad que no es un entero positivo.

## `entity_not_found`

- **Tipo:** HTTP · **HTTP:** 404 · **Estado:** vigente
- **Qué significa:** Se pidió revisar o completar una entidad que no existe en Boost: «Completar» (`entities/:id/complete`) o su autorización (`entities/:id/authz-status`, `entities/:id/authz-complete`).
- **Qué hacer:** Revisar el id; si es una entidad nueva, darla de alta con el asistente de Entidades. «Completar» solo repara entidades ya levantadas.

## `entity_not_provisioned`

- **Tipo:** HTTP · **HTTP:** 409 · **Estado:** vigente
- **Qué significa:** «Completar» se pidió para una entidad que existe en Boost pero nunca pasó por el alta (no tiene roles), como las que creó el import de plantillas legacy.
- **Qué hacer:** Levantarla con el asistente de Entidades (Dar de alta); «Completar» no siembra entidades que nadie opera.

## `entity_role_missing`

- **Tipo:** HTTP · **HTTP:** 409 · **Estado:** vigente
- **Qué significa:** Al aprovisionar, un rol que la plantilla debía crear no existe.

## `entity_roles_already_exist`

- **Tipo:** HTTP · **HTTP:** 409 · **Estado:** vigente
- **Qué significa:** La entidad ya tiene roles: re-aplicar la plantilla los reescribiría y descartaría lo personalizado.

## `permission_codes_missing`

- **Tipo:** HTTP · **HTTP:** 409 · **Estado:** vigente
- **Qué significa:** Faltan permisos en la base (la tabla `permissions` no tiene códigos que la plantilla usa): falta un DDL o una semilla.

## `provision_passcode_invalid`

- **Tipo:** HTTP · **HTTP:** 401 · **Estado:** vigente
- **Qué significa:** La clave de aprovisionamiento de entidades es incorrecta.

## `provision_passcode_not_configured`

- **Tipo:** HTTP · **HTTP:** 503 · **Estado:** vigente
- **Qué significa:** `BOOST_ENTITY_PROVISION_PASSCODE` no está configurada: el aprovisionamiento está apagado.

## `provision_passcode_required`

- **Tipo:** HTTP · **HTTP:** 401 · **Estado:** vigente
- **Qué significa:** El aprovisionamiento de entidades pide su clave.

## `service_identity_ref_not_in_payload`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** La identidad de servicio apunta a un empleado que no viene en la lista de usuarios de la entidad.

## `service_identity_ref_unresolved`

- **Tipo:** HTTP · **HTTP:** 409 · **Estado:** vigente
- **Qué significa:** La identidad de servicio apunta a un empleado que no quedó creado como usuario.

## `service_identity_user_not_found`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Los usuarios indicados para la identidad de servicio no existen.

## `zauru_entity_not_found`

- **Tipo:** HTTP · **HTTP:** 404 · **Estado:** vigente
- **Qué significa:** La entidad no existe en Zauru o el usuario no tiene acceso a ella.

## `zauru_roster_query_failed`

- **Tipo:** HTTP · **HTTP:** 503 · **Estado:** vigente
- **Qué significa:** Zauru respondio con error al listar la nomina. Reintenta, o carga los usuarios con el pegado manual.

## `zauru_roster_unreachable`

- **Tipo:** HTTP · **HTTP:** 503 · **Estado:** vigente
- **Qué significa:** No se pudo consultar la nomina en Zauru. Reintenta, o carga los usuarios con el pegado manual.
