Todos los servicios › memory-service
104207 Al rol de ejecución le falta un permiso sobre una tabla
PERMISO_DE_RUNTIME_AUSENTE
Qué ha pasado
Bajo M-1 la api se conecta con un rol restringido (PG_RUNTIME_ROLE=memory_api) y la fila se filtra por RLS. Cuando una migración crea una tabla y no le concede permisos a ese rol, la operación falla con 42501 — pero el cliente ve un 500 genérico que no dice qué falta, ni a quién llamar, ni si hay algo que hacer mientras tanto.
Cómo se soluciona
Aplicar la migración de GRANT que corresponda y comprobar con el rol de runtime, no con el superusuario: con el superusuario funciona SIEMPRE y por eso no se detecta en pruebas.
Qué hacer mientras tanto
Ninguno desde fuera. Es un despliegue incompleto, no un problema del cliente.
Ya costó tiempo
2026-08: tres endpoints devolvieron {"error":"INTERNAL_ERROR"} en producción durante días. La causa —permisos que le faltaban al rol de runtime, resueltos por las migraciones 206 y 207— no estaba en ninguna parte que pudiera alcanzar quien viera el error. Este es el caso que el ADR-0009 usa como ejemplo, y el número 207 se le asigna por eso.
Dónde se lanza
src/db/pg/index.ts — siEsPermisoDeRuntime, en los DOS caminos de consulta (con y sin contexto de cliente). El mensaje dice qué mirar e incluye la trampa que hace que no se detecte en pruebas: con el superusuario funciona SIEMPRE.
El número viaja en la respuesta o en el registro: sí.
Cómo se lee el código
1- origen: Fortiseg
04- servicio: memory-service
207- error propio del servicio