N8N and Pupeteer - weird error while running step

Hi, I tried to host n8n8 locally in my Docker and added Pupeteer-based step in my workflow. But every time I try to run this step I get this error
*
Problem in node ‘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.

At the same time the log for my Docker container shows this output

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 |

Could somebody tell me how to fix this error?

Hi @Nikolay_Sonin Welcome!
See this:

In my opinion, a custom Dockerfile will be required for this task, as it appears that Chrome is not installed in your container.

Hi, here’s my 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

Hi @Nikolay_Sonin,

Looking at your Dockerfile, Chromium is already being installed:

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

What stands out is that you’re installing Chromium but setting:

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

Can you check whether that binary actually exists inside the container?

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

If only Chromium is present, try changing:

ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium

and rebuild the image.

The error message suggests Puppeteer is trying to find a specific Chrome version in its cache rather than using the system installed browser, so it would also be useful to know which settings you’re using in the Puppeteer node (especially the Browser Type and Executable Path settings). Hey @Jekylls

Ok , here’s the output for both cmds:

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>

The container’s name is n8n-main

Thanks for checking.

The fact that both commands return nothing is a bit… It suggests either:

  1. The image currently running in n8n-main was built before Chromium was added to the Dockerfile, or
  2. Chromium was not installed successfully during the image build.

Could you run:

docker exec -it n8n-main sh

and then inside the container:

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

Also, after updating the Dockerfile, did you rebuild the image with docker compose build --no-cache (or equivalent) and recreate the container?

Right now the Puppeteer error says it can’t find Chrome 148 in its cache, but the checks above suggest the container may not actually have a browser binary available on the PATH at runtime.

I tried to run your commands:

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
~ $

As you may see, it looks like there’s nothing similar to chrome. What should I do to have Chrome installed there?

Hey @Nikolay_Sonin, the key issue is here

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

This means your docker-n8n-3.yml compose file has no build: directive, so Docker never actually used your Dockerfile. It’s just pulling the stock n8n image from Docker Hub, which has no Chrome in it.

To fix it, open docker-n8n-3.yml and update your n8n service to point at your Dockerfile:

services:
n8n:
build:
context: .
dockerfile: Dockerfile # or whatever you named it

remove or comment out the image: line if present

Then rebuild properly:

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

After that, re-run the chromium --version check and it should be found. Also make sure PUPPETEER_EXECUTABLE_PATH is set to /usr/bin/chromium (not google-chrome-stable) since that’s what you’re actually installing.