Errores comunes
Los errores que más salen, con su arreglo. Cada módulo también trae los suyos colapsados debajo del paso que puede fallar.
Antes de levantar la mano, pega en Kiro el error completo y el comando que lo produjo, y pídele que lo explique sin desplegar ni borrar nada. Si no te sirve, prueba otro modelo desde el selector del chat.
Instalación y terminal
git, node, npm, nvm o aws no se reconocen como comando
Cierra la terminal y abre una nueva: Windows y macOS solo leen el PATH al abrirla. Si pasa en la terminal de Kiro, cierra Kiro completo y ábrelo otra vez.
Si sigue igual, la herramienta no quedó instalada y hay que repetir su paso en Antes del evento. En macOS y Linux, si es nvm, el script de instalación no agregó nvm a tu ~/.zshrc o ~/.bashrc: vuelve a correrlo y lee lo que imprime al final.
Windows: npm.ps1 cannot be loaded because running scripts is disabled
PowerShell no deja correr los .ps1 de npm. Corre esto una vez, en PowerShell normal, y vuelve a intentar:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
Contesta S si te pide confirmar. Solo cambia la política para tu usuario.
Windows: nvm use dice que necesita permisos, o node no cambia de versión
nvm-windows necesita PowerShell abierto como administrador (clic derecho y Ejecutar como administrador) para correr nvm install lts y nvm use lts. Si node --version sigue mostrando una versión vieja, probablemente quedó una instalación anterior de Node: desinstálala desde Configuración > Aplicaciones, abre una terminal nueva y repite nvm use lts.
npm ci o npm install dice "Unsupported engine" o se detiene por la versión
El repo pide Node 22 o superior y npm 11.10 o superior, y engine-strict lo hace cumplir. Revisa node --version y npm --version. Si npm es más viejo, corre npm install -g npm@latest. Si Node es más viejo, instala la versión LTS con nvm.
npm warn deprecated ... al instalar
Es un aviso, no un error: los autores marcaron una dependencia del SDK de AWS como deprecated. La instalación sigue. No instales otra versión por tu cuenta ni corras npm audit fix --force.
npm audit avisa de 2 vulnerabilidades moderadas
Hoy marca minimatch dentro de aws-cdk-lib. No hay versión corregida y ese código solo corre en tu laptop cuando CDK genera la plantilla. Hay más en Instalar paquetes sin riesgo. No corras npm audit fix --force.
Kiro quiere desactivar ignore-scripts, usar --force o instalar con npx
No lo aceptes: esas banderas son las protecciones del .npmrc. Pídele que explique la causa del error y lo resuelva sin tocarlas. Las reglas de .kiro/steering/npm-seguro.md le piden lo mismo.
Sesión y perfil
The config profile (gastos-hormiga) could not be found
No has iniciado sesión con ese perfil: aws login --profile gastos-hormiga.
Error de token vencido o "Your session has expired"
La sesión de aws login dura un rato. Vuelve a correr aws login --profile gastos-hormiga.
aws login no existe o dice "invalid choice"
Tu AWS CLI es más viejo que 2.32.0, la primera versión con aws login. Instala la nueva como dice Antes del evento y confirma con aws --version.
... with an explicit deny in a service control policy
Estás creando o leyendo algo en una Región que no es la de tu proyecto. Revisa region en cdk.json y que el comando no lleve --region us-east-1. Los servicios globales como CloudFront, IAM y Budgets son la excepción.
Si te empezó a pasar con algo que antes funcionaba, revisa en AWS Settings > Billing si llegaste a un límite de gasto.
Build y deploy
SSM parameter /cdk-bootstrap/... not found. Has the environment been bootstrapped?
Falta el bootstrap en esta cuenta y Región, o lo hiciste con otro perfil. Corre npm run bootstrap una vez y repite el deploy.
Unable to bundle ... spawn docker ENOENT, o Cannot find esbuild
CDK no encontró el esbuild del repo y quiso empaquetar con Docker. Corre npm ci desde la raíz del repo y repite. No instales Docker para esto.
Stack ... is in UPDATE_ROLLBACK_FAILED / ROLLBACK_COMPLETE
Un deploy anterior falló a medias. Abre CloudFormation y lee el primer evento en rojo de Events: ese es el error de verdad. Si el stack quedó en ROLLBACK_COMPLETE en el primer deploy, bórralo con npm run limpiar y vuelve a desplegar.
npm run sync y npm run deploy al mismo tiempo
Si npm run sync sigue corriendo y corres npm run deploy o npm run rotar-key, los dos actualizan el mismo stack. Pausa npm run sync con Ctrl+C antes de cualquier otro deploy.
npm run sync no sube mi cambio, o tarda mucho
Los cambios en src/ se suben en segundos. Si cambias infra/gastos-stack.ts, npm run sync hace un deploy completo con CloudFormation y tarda más: espera a que la terminal diga que terminó. Si marca un error, léelo completo y corrígelo; el siguiente guardado lo reintenta.
La API
{"message":"Forbidden"} en el POST
Falta la API key o no es la actual. Si la rotaste, actualízala en tu Atajo (npm run datos mostrar-key).
{"message":"Missing Authentication Token"}
Casi nunca es de autenticación: la ruta no existe. Revisa que la URL lleve /v1 y la ruta exacta (/gastos, no /gasto). Justo después de desplegar una ruta nueva también puede pasar unos segundos.
Status 501: "todavía no está implementado"
Tu Lambda desplegada es la versión vacía. Haz la tarea 2 de la spec con Kiro (módulo 4), acepta el diff y vuelve a desplegar.
{"message": "Internal server error"} con status 500
Si fue con muchas peticiones al mismo tiempo, rebasaste las 10 ejecuciones simultáneas de Lambda de una cuenta nueva. Si fue con una sola, el error está en tu código: búscalo en los logs de la Lambda, con el comando de Comandos del repo.
La página
La página dice que todavía no apunta a una API
Es lo esperado hasta el módulo 5. Después de desplegar la API, corre npm run preparar-pagina, agrega el archivo ignorado con git add -f web/config.js, haz commit y push a main, y espera a que Amplify termine el build.
Cambié web/ y no veo el cambio
Haz commit y push a main, abre Amplify y espera a que el último build termine en verde.
Failed to fetch o error de CORS en la consola del navegador
Tu Lambda respondió sin el header Access-Control-Allow-Origin, o la ruta no existe todavía. Las Lambdas tienen que responder con json() y error() de src/shared/http.ts.
En la consola del navegador veo un 404 de config.js
Es normal antes del módulo 5: la página importa config.js y todavía no existe. Después de npm run preparar-pagina, el commit y el push, desaparece.