N8n not updating (Docker Compose)

Describe the problem/error/question

I am trying to update to the latest version from 1.81.4
My yml file has:

  n8n:
    container_name: n8n
    image: docker.n8n.io/n8nio/n8n:latest
root@n8n-marketingtechpro:~/n8n-docker-caddy# docker compose pull
[+] Pulling 13/13
 ✔ n8n Pulled                                                             32.9s 
   ✔ f18232174bc9 Already exists                                           0.0s 
   ✔ 905fb610ce71 Already exists                                           0.0s 
   ✔ 2a055f0c83be Already exists                                           0.0s 
   ✔ 0416551166ae Already exists                                           0.0s 
   ✔ 25a1cf37e391 Already exists                                           0.0s 
   ✔ 4f4fb700ef54 Already exists                                           0.0s 
   ✔ 5309d5cda97c Pull complete                                           29.2s 
   ✔ 93868705f879 Pull complete                                           29.3s 
   ✔ 0c57d48088ad Pull complete                                           29.4s 
   ✔ 4bfe2d6e87fe Pull complete                                           29.4s 
   ✔ affffdbab366 Pull complete                                           29.4s 
 ✔ caddy Pulled                                                            1.1s 
root@n8n-marketingtechpro:~/n8n-docker-caddy# docker compose down
[+] Running 3/3
 ✔ Container n8n-docker-caddy-caddy-1  Removed                             0.5s 
 ✔ Container n8n                       Removed                             1.2s 
 ✔ Network n8n-docker-caddy_default    Removed                             0.1s 
root@n8n-marketingtechpro:~/n8n-docker-caddy# docker compose up -d
[+] Running 3/3
 ✔ Network n8n-docker-caddy_default    Created                             0.1s 
 ✔ Container n8n                       Started                             0.5s 
 ✔ Container n8n-docker-caddy-caddy-1  Started                             0.5s

I have also tried putting the version number in directly, and also one earlier version number.

The image seems to be pulled ok but it does not seem to be being applied.

What is the error message (if any)?

No error. Everything looks good until you go into n8n, and it’s still on the old version

Information on your n8n setup

  • n8n version: 1.81.4
  • Database (default: SQLite): Postgres
  • n8n EXECUTIONS_PROCESS setting (default: own, main): main
  • Running n8n via (Docker, npm, n8n cloud, desktop app): Docker
  • Operating system: Ubuntu 24.04

Wild guess, here:

run docker compose down
Then run docker system prune -a
And only then docker compose up -d

Let me know how it goes

Thanks Solomon. I can see it cleared out a lot of images etc, but the problem persists. Doesn’t matter if I use :latest or a specific version number, it’s apparently not updating.

Is there any way to check the version that’s running from docker / shell, rather than inside the browser?

I did wonder if it was maybe a browser cache thing, but I’ve ruled that out too.

Maybe I just need to totally delete and reinstall. Worried about losing my workflows though. Are they safe in the external postgres database?

Thanks

Yes, if you export the database you keep your workflows and credentials.
Only community nodes wiil be lost, if you are using any. But you can reinstall them later.

You can also use these workflows for backing up everything to GitHub:

Best of luck! :four_leaf_clover:

:point_right: If my reply answers your question, please remember to mark it as a solution.

Thank you. I went into the n8n logs in docker and it confirms the old version:

{“level”:“info”,“message”:“Version: 1.81.4”,“metadata”:{“file”:“abstract-server.js”,“function”:“start”,“timestamp”:“2025-03-17T21:47:43.378Z”}}

Seems something is blocking the update. Thank you for the links to those workflows - that’s something I’ve been meaning to put in place.

1 Like

Since you’re using latest tag, try doing

docker compose up --force-recreate n8n

From the logs above, even though you pulled the new image, the container was not re-created and is still using the old version - this is why it’s a better practice to not use latest (or use --force-recreate).

Let me know if that helped!

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.