Solución de problemas
Modos de fallo comunes de la era alpha y cómo recuperarse.
Kisenon está en alpha. Aquí están los modos de fallo con los que más probablemente topará, y cómo superar cada uno.
Endpoint atascado en Pending
Síntoma: un endpoint se queda en Pending durante más de unos segundos
en la creación. La consola no muestra error; la CLI muestra el mismo
estado.
Causa probable: el pod de cómputo no puede programarse. Las razones más comunes son la presión del clúster (ningún nodo tiene la CPU o memoria solicitadas libres) o una credencial de descarga de imagen obsoleta. Ambas son problemas del lado del operador.
Qué hacer:
- Espere 60 segundos. La presión transitoria normalmente se despeja una vez que otro endpoint se suspende.
- Si no se despeja, elimine el endpoint y recréelo. El plano de control reintentará la programación en un nodo diferente.
- Si la recreación también aterriza en
Pending, el clúster está descontento. Presente un reporte en el rastreador de GitHub con el id del endpoint y la hora de reloj.
FATAL: endpoint unavailable en la primera conexión
Síntoma: psql devuelve FATAL: endpoint unavailable en la primera
conexión a un endpoint recién creado, o tras una larga inactividad.
Causa probable: carrera de arranque en frío. El estado del endpoint es
Stopped, su paquete lo despertó, pero Postgres aún está reproduciendo el
WAL hasta el HEAD de la rama cuando su cliente se rinde.
Qué hacer: reintente la conexión. El arranque en frío normalmente se
completa en 300–500 ms, pero el primer despertar de un proyecto recién
creado, o tras una inactividad de 24 h+, puede tardar 10–30 segundos
mientras la caché de páginas del pageserver se calienta. La mayoría de los
controladores toleran esto si permite al menos un reintento; psql en
crudo no reintenta por defecto.
# psql with one explicit retry
for i in 1 2; do psql "$URI" -c '\q' && break; sleep 5; doneSi el endpoint sigue no disponible tras 30 segundos, el propio pod puede haber fallado — compruebe el estado en la consola y consulte la guía de Pending de arriba.
keon connection-string devuelve branch_not_found
Síntoma:
$ keon connection-string my-feature --project prj_abc...
Error: branch_not_found: my-feature…pero la rama existe en la consola.
Causa probable: el nombre no coincide con una rama en el proyecto al
que apuntó — normalmente un error tipográfico, o el --project incorrecto.
La CLI resuelve una rama por id o por nombre, lo pase como argumento
posicional o mediante --branch, así que un nombre que sí existe se
resolverá de cualquier manera.
Qué hacer: confirme el nombre de la rama y el proyecto:
keon branches list --project prj_abc...
keon connection-string my-feature --project prj_abc...El inicio de sesión devuelve access_denied
Síntoma: el OAuth de Google o GitHub se completa, pero la consola
redirige a una página de error citando access_denied.
Causa probable: durante la alpha, el inicio de sesión está restringido por una lista de permitidos de correos. Si su dirección no ha sido dada de alta, la callback de inicio de sesión la rechaza por principio.
Qué hacer: solicítelo en Acceso alpha. Una vez que su dirección se añade a la lista de permitidos, el inicio de sesión se completa normalmente en el siguiente intento.
La sesión de la consola expira a mitad de sesión
Síntoma: la consola funciona durante un rato, luego de repente devuelve 401 en cada llamada de API hasta que cierra sesión y vuelve a iniciarla.
Causa probable: el JWT firmado por cp expiró y su ventana de renovación
ha caducado. La consola acuña un JWT de vida corta (≈15 minutos) y,
mientras está activo, lo renueva en segundo plano contra
/v1/auth/refresh. La ventana de renovación está fijada en 12 horas desde
el inicio de sesión: una sesión activa se renueva indefinidamente, pero una
pestaña dejada sin tocar más allá de esa ventana ya no puede renovarse.
Qué hacer: cierre sesión y vuelva a iniciarla. Para automatización sin
interfaz o de larga duración, use una clave de API nsk_ en vez de una
sesión de navegador — las claves de API no expiran y se revocan
explícitamente. Consulte Autenticación.
Dónde presentar errores
Para cualquier cosa no cubierta aquí:
- Errores de producto y solicitudes de funciones: el rastreador de GitHub.
- Vulnerabilidades de seguridad: Seguridad — nunca en el rastreador público.
Los pasos de reproducción concretos, los ids afectados (proyecto, rama, endpoint), y una marca de tiempo de reloj acortan dramáticamente el ida-y-vuelta.