Saltar al contenido
← Volver al blog
appsinfraestructura

Error al publicar Bolt en Netlify: cómo leer el log

Dónde ver el error real cuando tu proyecto de Bolt.new no se publica en Netlify, las causas más comunes y cómo corregir y comprobar cada una.

Por Equipo Devonauts6 min de lectura
Read in English →
Una persona de espaldas trabaja de noche frente a dos monitores con código

Cuando un proyecto de Bolt.new falla al publicarse en Netlify, la causa casi siempre está escrita en la salida del build, unas líneas antes del mensaje final de error. Busca el primer error real (un módulo que no existe, un error de TypeScript, una carpeta de salida equivocada, una versión de Node distinta), corrige solo eso y vuelve a publicar. La última línea, del tipo Build script returned non-zero exit code: 2, solo avisa que algo falló antes.

En esta guía verás dónde está ese registro en Bolt y en Netlify, cómo leerlo sin perderte, qué provoca la mayoría de los fallos y qué dejar configurado para que no se repita.

¿Dónde encuentro el log del build?

Primero identifica cómo publicas. Hay quien usa el botón Publish de Bolt después de elegir Netlify como proveedor en Domains & Hosting, y hay quien conecta el repositorio de GitHub a un sitio de Netlify para que Netlify compile cada commit. El registro vive en un lugar distinto en cada caso.

  1. En Bolt. Abre la vista de código (el icono </>), despliega el panel inferior y entra a la pestaña Publish Output. Ahí queda la salida de cada publicación. La pestaña Bolt, al lado, muestra lo que pasa mientras corre la vista previa.
  2. En Netlify. Abre el sitio en el panel de Netlify, ve a Deploys y haz clic en el despliegue fallido. El deploy log es el registro completo del build, con el error incluido. Si Netlify compila desde GitHub, este es el registro que importa.

Si Bolt directamente no logra publicar, la página de problemas de publicación de Bolt propone una salida manual: ejecutar npm run build en la terminal de Bolt, descargar el proyecto y subir la carpeta resultante con el despliegue de arrastrar y soltar de Netlify.

¿Cómo se lee un log que falló?

Empieza por el final, donde están el resumen y el código de salida, y sube hasta la primera línea que empiece con error, Error:, ERR! o Module not found. Copia esa línea y las cinco o diez que la rodean: eso es lo que le pegas a Bolt o le mandas a un desarrollador. Líneas como Command failed with exit code 1 solo repiten el veredicto.

¿Qué suele romper la publicación de Bolt en Netlify?

Lo que dice el logCausa probableSolución
Module not found: Can't resolve '...'Un import apunta a un archivo o paquete que no existe, o cambia una mayúsculaCorregir la ruta o instalar el paquete
Errores de TypeScript (TS2322, TS2345…)El script de build revisa tipos antes de compilarCorregir los tipos, de uno en uno
Could not find a build output directory to publish.Los archivos finales quedaron en otro lugar, o no se generaronAlinear comando y carpeta de salida (dist en Vite)
ERESOLVE o Conflicting peer dependencyVersiones de paquetes que no se llevanAlinear versiones
Errores de sintaxis o de enginesNetlify compila con otra versión de NodeFijar la versión de Node
El build pasa pero la página sale en blancoFaltan variables de entorno al compilarAgregarlas donde corre el build y recompilar
Al recargar una ruta aparece un 404App de una sola página sin regla de respaldoRedirigir todo a index.html

Mayúsculas en los nombres de archivo

El sistema de archivos donde compila Netlify distingue mayúsculas, así que Header.tsx y header.tsx son archivos distintos. Si el log dice que no encuentra un módulo que sí ves en el proyecto, compara letra por letra el import con el nombre real.

La carpeta de salida

Los proyectos con Vite, la mayoría en Bolt, compilan en dist. Si el directorio de publicación apunta a build o a la raíz, el build pasa y el sitio queda vacío. En un archivo netlify.toml se ve así:

[build]
  command = "npm run build"
  publish = "dist"

La versión de Node

La vista previa de Bolt corre en tu navegador; un build en Netlify usa la versión de Node fijada en tu sitio de Netlify. Si un paquete necesita un Node más nuevo, verás errores de sintaxis o de versión. La documentación de dependencias de Netlify permite fijarla con la variable NODE_VERSION o con un archivo .nvmrc o .node-version que diga, por ejemplo, 22. Usa la misma versión mayor con la que pruebas en tu computadora.

Conflictos de dependencias

Un ERESOLVE significa que dos paquetes piden versiones distintas de una dependencia compartida. Lo correcto es actualizar o bajar uno de los dos hasta que coincidan. Como parche temporal, Netlify documenta la variable NPM_FLAGS con el valor --legacy-peer-deps. Lo explicamos a fondo en errores de dependencias npm en Bolt.

Variables de entorno que faltan

Las variables que empiezan con VITE_ quedan grabadas dentro del JavaScript al compilar. Cuando el build lo hace Netlify, solo ve las variables configuradas en Netlify, no tu .env de Bolt (que además no debería estar en GitHub). El build pasa y la app publicada falla con mensajes como supabaseUrl is required. Agrégalas en Netlify y lanza un despliegue nuevo, porque cambiar una variable no recompila nada por sí solo. Qué puede ir ahí y qué no lo explicamos en variables de entorno en Bolt.

Rutas que dan 404 al recargar

Una app de React de una sola página tiene un único archivo real, index.html, y Netlify necesita una regla que mande todas las rutas ahí. Crea public/_redirects con:

/*    /index.html   200

¿Qué no puede alojar Netlify de un proyecto de Bolt?

La documentación de Bolt es clara: el hosting de Netlify desde Bolt sirve para sitios que corren completos en el navegador. No aloja una base de datos ni un backend tradicional. Si tu proyecto depende de Bolt Database, de funciones de servidor o del inicio de sesión de Bolt, conviene publicar en el hosting de Bolt, o mover el backend a un lugar propio (por ejemplo, un proyecto de Supabase a tu nombre) y dejar en Netlify solo el frontend.

Dos límites más:

  • Bolt no publica proyectos que pasen de 100MB en total. Casi siempre son imágenes y videos; súbelos a un almacenamiento externo.
  • Si duplicas un proyecto, pierde la conexión con Netlify y al reconectar se crea un sitio nuevo, así que tu dominio propio tiene que apuntar a ese sitio nuevo.

¿Cómo confirmo que quedó arreglado?

  1. Ejecuta npm run build en la terminal de Bolt. Si falla ahí, también fallará en Netlify.
  2. Publica y revisa que el deploy log termine en un despliegue publicado, sin errores arriba.
  3. Abre la URL en una ventana privada, recarga una página que no sea la de inicio y mira la consola del navegador.
  4. Prueba la función que depende de variables de entorno; casi siempre es el inicio de sesión.

¿Cómo evito que vuelva a pasar?

  • Deja un netlify.toml en el proyecto con el comando, la carpeta y la versión de Node, para que la configuración viaje con el código.
  • Corre npm run build antes de cada publicación, no solo cuando algo se ve raro.
  • Conecta el proyecto a GitHub para que cada despliegue corresponda a un commit al que puedas volver.
  • Anota qué variables necesita la app y dónde está configurada cada una.

Si todavía estás eligiendo dónde alojar, mira nuestra comparación Netlify o Vercel.

Respuestas rápidas

¿Por qué funciona en la vista previa de Bolt y falla en Netlify? Porque son entornos distintos: otra versión de Node, un sistema de archivos que distingue mayúsculas y un build de producción más estricto. El log te dice cuál de esas diferencias pesa.

¿Sirve darle a Publish varias veces? No. Sin cambios, el mismo build falla igual. Lee el primer error, corrígelo y publica.

¿Puedo publicar en Netlify sin conectar mi cuenta de Bolt? Sí. Compila en Bolt, descarga el proyecto y arrastra la carpeta de salida a la página de despliegue manual de Netlify.

¿Sigue fallando?

Si el log apunta a algo que no sabes seguir, empieza con la revisión gratuita de tu URL publicada. Para ir más a fondo, nuestro servicio para arreglar apps de Bolt parte de una revisión del código y un precio cerrado por cada arreglo antes de tocar nada, y los planes de mantenimiento mantienen los despliegues sanos después. También puedes mandarnos el log y una persona te responde en un día hábil.

¿Tu app sigue trabada?

Pasa el chequeo gratis con la URL de tu app, o pide la Auditoría de rescate de $299: un ingeniero senior revisa el código y te envía un informe escrito en 2 días hábiles.