N8N y Puppeteer - error extraño al ejecutar el paso

Hola, intenté alojar n8n localmente en mi Docker y añadí un paso basado en Puppeteer en mi flujo de trabajo. Pero cada vez que intento ejecutar este paso recibo este error
*
Problema en el nodo ‘Puppeteer Enhanced’*

Failed to launch local browser: Could not find Chrome (ver. 148.0.7778.97). This can occur if either 1. you did not perform an installation before running the script (e.g. npx puppeteer browsers install chrome) or 2. your cache path is incorrectly configured (which is: /home/node/.cache/puppeteer). For (2), check out our guide on configuring puppeteer at Configuration | Puppeteer.. Check executablePath (‘auto-detect’) or ensure Chromium is installed.

Al mismo tiempo, el registro de mi contenedor Docker muestra esta salida

n8n-main | Puppeteer node: Launching local browser
n8n-main | Error
n8n-main | Error
n8n-main | at ExecuteContext.execute (/home/node/.n8n/nodes/node_modules/@wtyeung/n8n-nodes-puppeteer/nodes/Puppeteer/Puppeteer.node.ts:746:10)
n8n-main | at WorkflowExecute.executeNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+exporter-trace-otlp_cf5896492347c4895f0373f4acc773d7/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1053:8)
n8n-main | at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+exporter-trace-otlp_cf5896492347c4895f0373f4acc773d7/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1327:11)
n8n-main | at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+exporter-trace-otlp_cf5896492347c4895f0373f4acc773d7/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1778:27
n8n-main | at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+exporter-trace-otlp_cf5896492347c4895f0373f4acc773d7/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:2474:11
n8n-main |

¿Podría alguien decirme cómo solucionar este error?

¡Hola @Nikolay_Sonin! ¡Bienvenido!
Mira esto:

En mi opinión, será necesario un Dockerfile personalizado para esta tarea, ya que parece que Chrome no está instalado en tu contenedor.

Hola, aquí está mi Dockerfile

FROM n8nio/n8n:latest-debian


USER root


RUN apt-get update && apt-get install -y 
chromium 
chromium-driver 
fonts-liberation 
libasound2 
libatk-bridge2.0-0 
libatk1.0-0 
libcups2 
libdbus-1-3 
libdrm2 
libgbm1 
libgtk-3-0 
libnspr4 
libnss3 
libxcomposite1 
libxdamage1 
libxfixes3 
libxkbcommon0 
libxrandr2 
xdg-utils 
--no-install-recommends 

&& apt-get clean 
&& rm -rf /var/lib/apt/lists/*


#ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
#ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true

ENV PUPPETEER_CHROMIUM_REVISION=148.0.7778.97
ENV PUPPETEER_PRODUCT=chrome
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/google-chrome-stable


RUN mkdir -p /home/node/.cache/puppeteer && 
chown -R node:node /home/node/.cache


USER node


RUN cd /home/node/.n8n && 
npm install n8n-nodes-puppeteer

Hola @Nikolay_Sonin,

Mirando tu Dockerfile, Chromium ya está siendo instalado:

RUN apt-get update && apt-get install -y chromium chromium-driver ...

Lo que destaca es que estás instalando Chromium pero configurando:

ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/google-chrome-stable

¿Puedes verificar si ese binario realmente existe dentro del contenedor?

docker exec -it <container> which chromium
docker exec -it <container> which google-chrome-stable

Si solo Chromium está presente, intenta cambiar:

ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium

y reconstruye la imagen.

El mensaje de error sugiere que Puppeteer está intentando encontrar una versión específica de Chrome en su caché en lugar de usar el navegador instalado en el sistema, así que también sería útil saber qué configuraciones estás usando en el nodo de Puppeteer (especialmente la configuración de Browser Type y Executable Path). ¡Hola @Jekylls

Ok, aquí está el resultado para ambos comandos:

Microsoft Windows [Version 10.0.19045.6456]
(c) Microsoft Corporation. All rights reserved.

C:\Users\jima>docker exec -it n8n-main which chromium

What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug n8n-main
Learn more at 


C:\Users\jima>docker exec -it n8n-main which google-chrome-stable

What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug n8n-main
Learn more at 


C:\Users\jima>

El nombre del contenedor es n8n-main

Gracias por verificar.

El hecho de que ambos comandos no devuelvan nada es un poco… Sugiere que:

  1. La imagen que se ejecuta actualmente en n8n-main fue compilada antes de que Chromium se añadiera al Dockerfile, o
  2. Chromium no se instaló correctamente durante la compilación de la imagen.

¿Podrías ejecutar:

docker exec -it n8n-main sh

y luego dentro del contenedor:

chromium --version
ls -l /usr/bin/chrom*
env | grep PUPPETEER

Además, después de actualizar el Dockerfile, ¿reconstruiste la imagen con docker compose build --no-cache (o equivalente) y recreaste el contenedor?

Ahora mismo, el error de Puppeteer dice que no puede encontrar Chrome 148 en su caché, pero las comprobaciones anteriores sugieren que el contenedor podría no tener realmente un binario del navegador disponible en el PATH en tiempo de ejecución.

Intenté ejecutar tus comandos:

c:\prj\n8n>docker compose -f docker-n8n-3.yml build --no-cache
time="2026-06-22T18:45:40+03:00" level=warning msg="No services to build"

C:\Users\jima>docker exec -it n8n-main sh
~ $ chromium --version
sh: chromium: not found
~ $ ls -l /usr/bin/chrom*
ls: /usr/bin/chrom*: No such file or directory
~ $ env | grep PUPPETEER
~ $

Como puedes ver, parece que no hay nada similar a Chrome. ¿Qué debo hacer para tener Chrome instalado allí?

Hola @Nikolay_Sonin, el problema está aquí

time=“2026-06-22T18:45:40+03:00” level=warning msg=“No services to build”

Esto significa que tu archivo docker-n8n-3.yml no tiene la directiva build:, así que Docker nunca usó realmente tu Dockerfile. Solo está descargando la imagen estándar de n8n desde Docker Hub, que no tiene Chrome.

Para solucionarlo, abre docker-n8n-3.yml y actualiza tu servicio n8n para que apunte a tu Dockerfile:

services:
n8n:
build:
context: .
dockerfile: Dockerfile # o como quiera que lo hayas llamado

elimina o comenta la línea image: si está presente

Luego reconstruye correctamente:

docker compose -f docker-n8n-3.yml build --no-cache
docker compose -f docker-n8n-3.yml up -d

Después de eso, vuelve a ejecutar la verificación chromium --version y debería encontrarse. Asegúrate también de que PUPPETEER_EXECUTABLE_PATH esté configurado en /usr/bin/chromium (no google-chrome-stable) ya que es lo que realmente estás instalando.

Ok, actualicé mi docker-n8n-3.yml con tus líneas, intenté ejecutar

docker compose -f docker-n8n-3.yml build --no-cache

pero obtuve este error en docker

Ign:1 http://deb.debian.org/debian buster InRelease
Ign:2 http://deb.debian.org/debian-security buster/updates InRelease
Ign:3 http://deb.debian.org/debian buster-updates InRelease
Err:4 http://deb.debian.org/debian buster Release
404  Not Found [IP: 151.101.130.132 80]
Err:5 http://deb.debian.org/debian-security buster/updates Release
404  Not Found [IP: 151.101.130.132 80]
Err:6 http://deb.debian.org/debian buster-updates Release
404  Not Found [IP: 151.101.130.132 80]
Reading package lists...
E: The repository 'http://deb.debian.org/debian buster Release' no longer has a Release file.
E: The repository 'http://deb.debian.org/debian-security buster/updates Release' no longer has a Release file.
E: The repository 'http://deb.debian.org/debian buster-updates Release' no longer has a Release file.

Mi Dockerfile comienza con

FROM n8nio/n8n:latest-debian

y sugiero que hay algo mal con el repositorio correspondiente. ¿Cómo podría arreglar mis archivos ahora?

Hola @Nikolay_Sonin
n8nio/n8n:latest-debian es una imagen de más de 3 años de antigüedad construida sobre Debian 10 “buster”, que ya no tiene soporte. Buster fue removido de deb.debian.org y trasladado al archivo, por lo que apt-get update obtiene un 404 en su archivo Release. Apunta apt al archivo y omite la verificación de fecha. Añade esto inmediatamente después de USER root, antes de tu paso existente de apt-get install:

RUN sed -i \
    -e 's|deb.debian.org/debian|archive.debian.org/debian|g' \
    -e 's|security.debian.org/debian-security|archive.debian.org/debian-security|g' \
    -e '/buster-updates/d' \
    /etc/apt/sources.list \
    && echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf.d/99no-check-valid

La instalación de chromium se ejecutará entonces. Esa etiqueta base no tiene mantenimiento, así que una vez que la compilación sea exitosa, migrar a una base Debian actual es la solución duradera, ya que buster no recibe más actualizaciones de seguridad.