Apps containers not starting after 4.0.0 upgrade

Hello, After running the migration script to 4.0.0, it looks like none of my applications are starting. The upgrade script went through successfully. I do have these errors in the logs though :
2025-05-01T08:36:00.882Z - info > Logs flushed
2025-05-01T08:36:00.883Z - info > Running version: v4.0.0
2025-05-01T08:36:00.884Z - info > Generating system env file...
2025-05-01T08:36:01.979Z - info > Creating traefik folders
2025-05-01T08:36:01.981Z - info > Copying traefik files
2025-05-01T08:36:01.985Z - info > Creating base folders
2025-05-01T08:36:01.986Z - info > Creating media folders
2025-05-01T08:36:02.020Z - info > TLS certificate for tipi.local already exists
2025-05-01T08:36:02.727Z - error > RabbitMQ connection error connect ECONNREFUSED 172.18.0.5:5672 Error: connect ECONNREFUSED 172.18.0.5:5672
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1636:16)
2025-05-01T08:36:02.727Z - warn > RabbitMQ connection lost, attempting to reconnect...
2025-05-01T08:36:04.079Z - info > Connected to the queue
2025-05-01T08:36:04.531Z - info > Connected to the queue
2025-05-01T08:36:06.775Z - info > Connected to the queue
2025-05-01T08:36:00.882Z - info > Logs flushed
2025-05-01T08:36:00.883Z - info > Running version: v4.0.0
2025-05-01T08:36:00.884Z - info > Generating system env file...
2025-05-01T08:36:01.979Z - info > Creating traefik folders
2025-05-01T08:36:01.981Z - info > Copying traefik files
2025-05-01T08:36:01.985Z - info > Creating base folders
2025-05-01T08:36:01.986Z - info > Creating media folders
2025-05-01T08:36:02.020Z - info > TLS certificate for tipi.local already exists
2025-05-01T08:36:02.727Z - error > RabbitMQ connection error connect ECONNREFUSED 172.18.0.5:5672 Error: connect ECONNREFUSED 172.18.0.5:5672
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1636:16)
2025-05-01T08:36:02.727Z - warn > RabbitMQ connection lost, attempting to reconnect...
2025-05-01T08:36:04.079Z - info > Connected to the queue
2025-05-01T08:36:04.531Z - info > Connected to the queue
2025-05-01T08:36:06.775Z - info > Connected to the queue
But I think that none of the apps are starting (specially tailscale because I am using it to access the tipi GUI on port 8080 since the machine is on a VPS)
15 Replies
frankynov
frankynovOP2d ago
My docker ps is the folllowing :
root@hetzner-arm:~/runtipi# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9eeddbf72e11 traefik:v3.2 "/entrypoint.sh --pr…" 3 minutes ago Up 3 minutes 0.0.0.0:8080->80/tcp, [::]:8080->80/tcp, 0.0.0.0:8443->443/tcp, [::]:8443->443/tcp runtipi-reverse-proxy
338b12595221 ghcr.io/runtipi/runtipi:v4.0.0 "docker-entrypoint.s…" 3 minutes ago Up 3 minutes (healthy) 3000/tcp runtipi
6282949ed690 postgres:14 "docker-entrypoint.s…" 3 minutes ago Up 3 minutes (healthy) 5432/tcp runtipi-db
203f005168ec rabbitmq:4-alpine "docker-entrypoint.s…" 3 minutes ago Up 3 minutes (healthy) 4369/tcp, 5671-5672/tcp, 15691-15692/tcp, 25672/tcp runtipi-queue
1b299a8d52f1 jc21/nginx-proxy-manager:latest "/init" 5 weeks ago Up 10 minutes 0.0.0.0:80-81->80-81/tcp, [::]:80-81->80-81/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp npm-app-1
root@hetzner-arm:~/runtipi# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9eeddbf72e11 traefik:v3.2 "/entrypoint.sh --pr…" 3 minutes ago Up 3 minutes 0.0.0.0:8080->80/tcp, [::]:8080->80/tcp, 0.0.0.0:8443->443/tcp, [::]:8443->443/tcp runtipi-reverse-proxy
338b12595221 ghcr.io/runtipi/runtipi:v4.0.0 "docker-entrypoint.s…" 3 minutes ago Up 3 minutes (healthy) 3000/tcp runtipi
6282949ed690 postgres:14 "docker-entrypoint.s…" 3 minutes ago Up 3 minutes (healthy) 5432/tcp runtipi-db
203f005168ec rabbitmq:4-alpine "docker-entrypoint.s…" 3 minutes ago Up 3 minutes (healthy) 4369/tcp, 5671-5672/tcp, 15691-15692/tcp, 25672/tcp runtipi-queue
1b299a8d52f1 jc21/nginx-proxy-manager:latest "/init" 5 weeks ago Up 10 minutes 0.0.0.0:80-81->80-81/tcp, [::]:80-81->80-81/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp npm-app-1
Stavros
Stavros2d ago
Alright The issue is that the queue probably didn't have enough time to start up so it shows as unhealthy
frankynov
frankynovOP2d ago
I did restart the machine & perform a ./runtipi restart
Stavros
Stavros2d ago
We can manually increase the timeout You will need to create the user-config/tipi-compose.yml file And add
services:
runtipi-queue:
healthcheck:
test: rabbitmq-diagnostics -q ping
interval: 5s
timeout: 15s
retries: 20
start_period: 15s
services:
runtipi-queue:
healthcheck:
test: rabbitmq-diagnostics -q ping
interval: 5s
timeout: 15s
retries: 20
start_period: 15s
Then restart and this time the queue should have enough time to report as healthy
frankynov
frankynovOP2d ago
Should it be created in the new subfolder "migrated" under user-config folder ? I did put it here, no more error in the log but still the app containers don't start :
root@hetzner-arm:~/runtipi/user-config# ls -la
total 16
drwxrwxrwx 3 root root 4096 May 1 10:50 .
drwxr-xr-x 14 root root 4096 May 1 10:32 ..
drwxrwxrwx 7 root root 4096 May 1 10:32 migrated
-rwxrwxrwx 1 root root 165 May 1 10:50 tipi-compose.yml
root@hetzner-arm:~/runtipi/user-config# ls -la
total 16
drwxrwxrwx 3 root root 4096 May 1 10:50 .
drwxr-xr-x 14 root root 4096 May 1 10:32 ..
drwxrwxrwx 7 root root 4096 May 1 10:32 migrated
-rwxrwxrwx 1 root root 165 May 1 10:50 tipi-compose.yml
Stavros
Stavros2d ago
No, it should be created inside the user config folder not in subfolders, the migrated one contains all of the user config for the default repo you have which is called migrated
frankynov
frankynovOP2d ago
root@hetzner-arm:~/runtipi# cat logs/app.log
2025-05-01T08:51:00.429Z - info > Logs flushed
2025-05-01T08:51:00.430Z - info > Running version: v4.0.0
2025-05-01T08:51:00.431Z - info > Generating system env file...
2025-05-01T08:51:00.959Z - info > Creating traefik folders
2025-05-01T08:51:00.961Z - info > Copying traefik files
2025-05-01T08:51:00.962Z - info > Creating base folders
2025-05-01T08:51:00.963Z - info > Creating media folders
2025-05-01T08:51:00.989Z - info > TLS certificate for tipi.local already exists
root@hetzner-arm:~/runtipi# cat logs/app.log
2025-05-01T08:51:00.429Z - info > Logs flushed
2025-05-01T08:51:00.430Z - info > Running version: v4.0.0
2025-05-01T08:51:00.431Z - info > Generating system env file...
2025-05-01T08:51:00.959Z - info > Creating traefik folders
2025-05-01T08:51:00.961Z - info > Copying traefik files
2025-05-01T08:51:00.962Z - info > Creating base folders
2025-05-01T08:51:00.963Z - info > Creating media folders
2025-05-01T08:51:00.989Z - info > TLS certificate for tipi.local already exists
Stavros
Stavros2d ago
If for example you add a new appstore called myapps and want to customize an app using user config then you will go to the user config directory, make a myapps directory and for every app add your user config as you would normally do That's good It means tipi started Can you check if you can access it?
frankynov
frankynovOP2d ago
indeed, internally it is started, I can see the login page with curl on localhost :
root@hetzner-arm:~/runtipi# curl localhost:8080
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<script src="/js/tabler.min.js" async></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="apple-touch-icon"
sizes="180x180"
href="/icons/apple-touch-icon.png"
/>
<link
rel="icon"
type="image/png"
sizes="32x32"
href="/icons/favicon-32x32.png"
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="/icons/favicon-16x16.png"
/>
<link rel="manifest" href="/icons/site.webmanifest" />
<title>Runtipi</title>
<script type="module" crossorigin src="/assets/index-DGka_Jet.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-DL4jEUj1.css">
</head>

<body>
<div id="root"></div>
</body>
</html>
root@hetzner-arm:~/runtipi# curl localhost:8080
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<script src="/js/tabler.min.js" async></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="apple-touch-icon"
sizes="180x180"
href="/icons/apple-touch-icon.png"
/>
<link
rel="icon"
type="image/png"
sizes="32x32"
href="/icons/favicon-32x32.png"
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="/icons/favicon-16x16.png"
/>
<link rel="manifest" href="/icons/site.webmanifest" />
<title>Runtipi</title>
<script type="module" crossorigin src="/assets/index-DGka_Jet.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-DL4jEUj1.css">
</head>

<body>
<div id="root"></div>
</body>
</html>
But I don't know why the apps won't start 😦 I do have a recent docker : Docker version 28.1.1, build 4eba377
Stavros
Stavros2d ago
The first time you need to start them manually Not through the cli In v4 the cli commands are not supported, we will include them in a future release
frankynov
frankynovOP2d ago
Aaaah ok ! So, I did briefly open the firewall to 8080, connected to tipi GUI from the WAN and started tailscale. From there I disabled again the firewall and started all the other containers and apps in the GUI. All seems to be good, and I validated with a reboot of the machine, all apps are starting again
Stavros
Stavros2d ago
Cool
frankynov
frankynovOP2d ago
Thanks a lot for your help ! I hadn't seen that manual restart step needed in the breaking update web page so maybe worth to add it there ? 🙂
Stavros
Stavros2d ago
Yeah we should probably add it, we will also release a patch fix for the queue timeout so as you don't need the user config
frankynov
frankynovOP2d ago
Excellent. Thank you very much ! I'll validate everything is ok and then will delete the migration-backups folder. Cheers !

Did you find this page helpful?