App stopped responding after updating package to v4.24.0
-
Hi, I need help with debugging this issue.
Git Commit: Update package version to 4.24.0
The update in the log (anonymized/redacted):
2026-05-24T03:03:13.325Z docker: pullImage: {"status":"Extracting","progressDetail":{"current":172,"total":172},"id":"a7c19e4b2d10"} 2026-05-24T03:03:13.343Z docker: pullImage: {"status":"Pull complete","progressDetail":{},"id":"a7c19e4b2d10"} 2026-05-24T03:03:13.348Z docker: pullImage: {"status":"Extracting","progressDetail":{"current":147,"total":147},"id":"c2d884f109ab"} 2026-05-24T03:03:13.348Z docker: pullImage: {"status":"Extracting","progressDetail":{"current":147,"total":147},"id":"c2d884f109ab"} 2026-05-24T03:03:13.365Z docker: pullImage: {"status":"Pull complete","progressDetail":{},"id":"c2d884f109ab"} 2026-05-24T03:03:13.369Z docker: pullImage: {"status":"Extracting","progressDetail":{"current":165,"total":165},"id":"e91a7c03bd45"} 2026-05-24T03:03:13.370Z docker: pullImage: {"status":"Extracting","progressDetail":{"current":165,"total":165},"id":"e91a7c03bd45"} 2026-05-24T03:03:13.387Z docker: pullImage: {"status":"Pull complete","progressDetail":{},"id":"e91a7c03bd45"} 2026-05-24T03:03:13.392Z docker: pullImage: {"status":"Extracting","progressDetail":{"current":1347,"total":1347},"id":"49fd10e8c732"} 2026-05-24T03:03:13.392Z docker: pullImage: {"status":"Extracting","progressDetail":{"current":1347,"total":1347},"id":"49fd10e8c732"} 2026-05-24T03:03:13.408Z docker: pullImage: {"status":"Pull complete","progressDetail":{},"id":"49fd10e8c732"} 2026-05-24T03:03:13.422Z docker: pullImage: {"status":"Digest: sha256:8e174f9c50d7a629ab340be51cfd8267ee4d3a6192045b8cc7329a607f1e48bd"} 2026-05-24T03:03:13.426Z docker: pullImage: {"status":"Status: Downloaded newer image for registry.example.invalid/vendor/io.app.example:202605220101010000"} 2026-05-24T03:03:13.430Z docker: downloadImage: tagging registry.example.invalid/vendor/io.app.example:202605220101010000 as vendor/io.app.example:202605220101010000 2026-05-24T03:03:13.430Z docker: downloaded image registry.example.invalid/vendor/io.app.example:202605220101010000 . error: false 2026-05-24T03:03:13.435Z docker: deleteImage: removing registry.example.invalid/vendor/io.app.example:202605220101010000 2026-05-24T03:03:13.435Z docker: downloadImage: untagging registry.example.invalid/vendor/io.app.example:202605220101010000 2026-05-24T03:03:13.442Z tasks: updating task 78431 with: {"percent":35,"message":"Deleting old containers"} 2026-05-24T03:03:13.444Z apptask: deleteContainer: deleting app containers (app, scheduler) 2026-05-24T03:03:13.444Z shell: apptask: /usr/bin/sudo --non-interactive /home/service/platform/src/scripts/configurelogrotate.sh remove 4c18ad72-9b40-4f26-8e51-d9b2037fa684 2026-05-24T03:03:13.479Z docker: stopContainer: stopping container 4d90c71eac82f019be61a2f73a0d846c51e2018f8d3a97cd4fb53026c2e711a9 2026-05-24T03:03:14.517Z docker: deleteContainer: deleting 4d90c71eac82f019be61a2f73a0d846c51e2018f8d3a97cd4fb53026c2e711a9 2026-05-24T03:03:14.554Z docker: deleteImage: removing vendor/io.app.example:202605200202020000 2026-05-24T03:03:24.706Z services: teardownAddons: Tearing down [] 2026-05-24T03:03:24.722Z tasks: updating task 78431 with: {"percent":45,"message":"Downloading icon"} 2026-05-24T03:03:24.724Z apptask: downloadIcon: Downloading icon of io.app.example@9.8.7 2026-05-24T03:03:25.201Z tasks: updating task 78431 with: {"percent":60,"message":"Updating addons"} 2026-05-24T03:03:25.204Z services: setupAddons: Setting up ["localstorage","postgresql","sendmail","redis"] 2026-05-24T03:03:25.204Z services: setupAddons: setting up addon localstorage with options {} 2026-05-24T03:03:25.204Z services: setupLocalStorage 2026-05-24T03:03:25.204Z shell: services: /usr/bin/sudo --non-interactive /home/service/appsdata/4c18ad72-9b40-4f26-8e51-d9b2037fa684/data 2026-05-24T03:03:25.226Z services: Setting up postgresql 2026-05-24T03:03:25.226Z services: setupAddons: setting up addon postgresql with options {} 2026-05-24T03:03:25.264Z services: Setting postgresql addon config to [{"name":"CLOUDRON_POSTGRESQL_URL","value":"postgres://user4c18ad729b404f268e51d9b2037fa684:<REDACTED_SECRET_01>@db-internal/db4c18ad729b404f268e51d9b2037fa684"},{"name":"CLOUDRON_POSTGRESQL_USERNAME","value":"user4c18ad729b404f268e51d9b2037fa684"},{"name":"CLOUDRON_POSTGRESQL_PASSWORD","value":"<REDACTED_SECRET_01>"},{"name":"CLOUDRON_POSTGRESQL_HOST","value":"db-internal"},{"name":"CLOUDRON_POSTGRESQL_PORT","value":"5432"},{"name":"CLOUDRON_POSTGRESQL_DATABASE","value":"db4c18ad729b404f268e51d9b2037fa684"}] 2026-05-24T03:03:25.267Z services: Setting up SendMail 2026-05-24T03:03:25.267Z services: setupAddons: setting up addon sendmail with options {"supportsDisplayName":true} 2026-05-24T03:03:25.268Z services: Setting sendmail addon config to [{"name":"CLOUDRON_MAIL_SMTP_SERVER","value":"mail-internal"},{"name":"CLOUDRON_MAIL_SMTP_PORT","value":"2525"},{"name":"CLOUDRON_MAIL_SMTPS_PORT","value":"2465"},{"name":"CLOUDRON_MAIL_STARTTLS_PORT","value":"2587"},{"name":"CLOUDRON_MAIL_SMTP_USERNAME","value":"automation@tenant.example.invalid"},{"name":"CLOUDRON_MAIL_SMTP_PASSWORD","value":"<REDACTED_SECRET_02>"},{"name":"CLOUDRON_MAIL_FROM","value":"automation@tenant.example.invalid"},{"name":"CLOUDRON_MAIL_DOMAIN","value":"tenant.example.invalid"},{"name":"CLOUDRON_MAIL_FROM_DISPLAY_NAME","value":""}] 2026-05-24T03:03:25.271Z services: setupAddons: setting up addon redis with options {"optional":true} 2026-05-24T03:03:25.275Z services: Re-using existing redis container with state: {"Status":"running","Running":true,"Paused":false,"Restarting":false,"OOMKilled":false,"Dead":false,"Pid":28417,"ExitCode":0,"Error":"","StartedAt":"2026-04-30T03:58:18.834618381Z","FinishedAt":"0001-01-01T00:00:00Z"} 2026-05-24T03:03:25.275Z services: Waiting for redis-4c18ad72-9b40-4f26-8e51-d9b2037fa684 2026-05-24T03:03:25.474Z tasks: updating task 78431 with: {"percent":70,"message":"Creating container"} 2026-05-24T03:03:25.476Z apptask: createContainer: creating container 2026-05-24T03:03:25.575Z shell: apptask: /usr/bin/sudo --non-interactive /home/service/platform/src/scripts/configurelogrotate.sh add 4c18ad72-9b40-4f26-8e51-d9b2037fa684 /tmp/4c18ad72-9b40-4f26-8e51-d9b2037fa684.logrotate 2026-05-24T03:03:25.597Z apptask: startApp: starting container 2026-05-24T03:03:25.785Z tasks: updating task 78431 with: {"percent":90,"message":"Configuring reverse proxy"} 2026-05-24T03:03:25.788Z tasks: updating task 78431 with: {"percent":100,"message":"Done"} 2026-05-24T03:03:25.792Z tasks: setCompleted - 78431: {"result":null,"error":null,"percent":100} 2026-05-24T03:03:25.792Z tasks: updating task 78431 with: {"completed":true,"result":null,"error":null,"percent":100} 2026-05-24T03:03:25.794Z Exiting with code 0 2026-05-24T03:03:25.794Z taskworker: Task took 203.464 seconds 2026-05-24T03:03:30.000Z => Healthcheck error: Error: connect ECONNREFUSED 10.254.87.41:8080 2026-05-24T03:03:40.000Z => Healthcheck error: Error: connect ECONNREFUSED 10.254.87.41:8080 2026-05-24T03:03:51.000Z => Healthcheck error: Error: connect ECONNREFUSED 10.254.87.41:8080 2026-05-24T03:04:00.000Z => Healthcheck error: Error: connect ECONNREFUSED 10.254.87.41:8080 2026-05-24T03:04:13.000Z => Healthcheck error: Error: connect EHOSTUNREACH 10.254.87.41:8080 2026-05-24T03:04:27.000Z => Healthcheck error: AbortError: The operation was aborted 2026-05-24T03:04:33.000Z => Healthcheck error: Error: connect EHOSTUNREACH 10.254.87.41:8080 2026-05-24T03:04:43.000Z => Healthcheck error: Error: connect EHOSTUNREACH 10.254.87.41:8080 2026-05-24T03:04:56.000Z => Healthcheck error: Error: connect EHOSTUNREACH 10.254.87.41:8080Restoring to v4.23.3 sets status back to normal.
Cloning a backup from affected version results in not responding app. -
Sorry, was cut. Yes..
... 2026-05-27T07:59:20.000Z => Healthcheck error: Error: connect ECONNREFUSED 10.254.87.41: 8080 2026-05-27T07:59:30.000Z => Healthcheck error: Error: connect ECONNREFUSED 10.254.87.41: 8080 2026-05-27T07:59:35+02:00 ==> Ensure directories 2026-05-27T07:59:35+02:00 ==> Setting permissions 2026-05-27T07:59:35+02:00 ==> Starting N8N 2026-05-27T07:59:37+02:00 Error: ENOENT: no such file or directory, open '/app/data/user/.n8n/nodes/node_modules/n8n-nodes-xlsx/package.json' 2026-05-27T07:59:37+02:00 at /app/code/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+exporter-trace-otlp_<HASH_REDACTED>/node_modules/n8n-core/src/nodes-loader/scan-directory-for-packages.ts:29:4 2026-05-27T07:59:37+02:00 at Array.map (<anonymous>) 2026-05-27T07:59:37+02:00 at CommandRegistry.execute (/app/code/src/command-registry.ts:46:3) 2026-05-27T07:59:37+02:00 at CommunityPackagesModule.nodeLoaders (/app/code/src/modules/community-packages/community-packages.module.ts:41:10) 2026-05-27T07:59:37+02:00 at LazyPackageDirectoryLoader.readJSONSync (/app/code/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+exporter-trace-otlp_<HASH_REDACTED>/node_modules/n8n-core/src/nodes-loader/package-directory-loader.ts:96:34) 2026-05-27T07:59:37+02:00 at ModuleRegistry.loadModules (/app/code/node_modules/.pnpm/@n8n+backend-common@file+packages+@n8n+backend-common_zod@3.25.67/node_modules/@n8n/backend-common/src/modules/module-registry.ts:124:20) 2026-05-27T07:59:37+02:00 at new LazyPackageDirectoryLoader (/app/code/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+exporter-trace-otlp_<HASH_REDACTED>/node_modules/n8n-core/src/nodes-loader/lazy-package-directory-loader.ts:6:1) 2026-05-27T07:59:37+02:00 at new PackageDirectoryLoader (/app/code/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+exporter-trace-otlp_<HASH_REDACTED>/node_modules/n8n-core/src/nodes-loader/package-directory-loader.ts:20:27) 2026-05-27T07:59:37+02:00 at readFileSync (node:fs:439:20) 2026-05-27T07:59:37+02:00 at scanDirectoryForPackages (/app/code/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+exporter-trace-otlp_<HASH_REDACTED>/node_modules/n8n-core/src/nodes-loader/scan-directory-for-packages.ts:27:31) 2026-05-27T07:59:40.000Z => Healthcheck error: Error: connect ECONNREFUSED 10.254.87.41: 8080 2026-05-27T07:59:50.000Z => Healthcheck error: Error: connect ECONNREFUSED 10.254.87.41: 8080So it looks indeed like n8n attempts to load a package but can not find the required package.json so it exits.
-
-
Hello @dev-cb
Where didn8n-nodes-xlsxcome from, with your statement:/app/data/user/.n8n/nodes/node_modules/n8n-nodes-xlsx/
This was not in the log you posted above, so how did you figure out it was this folder?
Copied the wrong event. My bad... Sorry for sloppiness.
I’ve adjusted the post with the log. -
/app/data/user/.n8n/nodes/node_modules/n8n-nodes-xlsx/ is indeed empty. Was created a few days ago, which differs from the other node packages.
@dev-cb I had the same issue with an empty Zabbix folder. Restoring the old version, deleting the empty folder, and updating to the latest version worked. But I thought it had nothing to do with the app package and was just an issue with my instance.
-
@dev-cb I had the same issue with an empty Zabbix folder. Restoring the old version, deleting the empty folder, and updating to the latest version worked. But I thought it had nothing to do with the app package and was just an issue with my instance.
@dev-cb I had the same issue with an empty Zabbix folder. Restoring the old version, deleting the empty folder, and updating to the latest version worked. But I thought it had nothing to do with the app package and was just an issue with my instance.
Yes. Just did the same, backup, update, restart went all though.
-
I have looked into this issue.
#1 Our
EXTRA_NODE_MODULES(for the Code node) installed instart.sh:47-50into/run/n8n/custom-node-modules/, which is ephemeral (/run/...) and reinstalled on every boot, then symlinked to/app/node_modules(Dockerfile:40).#2 n8n Community Nodes (
n8n-nodes-*, installed through the web UI), n8n puts these under$N8N_USER_FOLDER/.n8n/nodes/, i.e./app/data/user/.n8n/nodes/. That's persistent (under/app/data). It keeps apackage.jsonlisting the installed community packages plus the actual code innodes/node_modules/, and also tracks them in the DB.The failing path is
/app/data/user/.n8n/nodes/node_modules/n8n-nodes-xlsx/package.json, that's path #2.n8n-nodes-xlsxis a community node the user installed via the UI. The crash (scanDirectoryForPackages→CommunityPackagesModule.nodeLoaders) happens because thenodes/package.jsonstill listsn8n-nodes-xlsxbut the actualnode_modules/n8n-nodes-xlsx/directory is missing/incomplete, an orphaned reference. n8n's startup scan is not tolerant of this and throws.Typical cause: a community-node install/uninstall that was interrupted or partially failed (npm wrote the package.json entry, but the module folder wasn't fully written), or the directory got out of sync across a restart/upgrade. It's a n8n-side robustness issue, not our packaging.
We could add a handler in our
start.shto prevent this issue.
I will look into that. -
@dev-cb I cannot update my instance and try as prod workflows are running. But I have another instance which migrated to 2.24.0 without any trouble. The only difference between the two is the presence of NODE_FUNCTION_ALLOW_BUILTIN=* on the first one (the one that crashes).
-
The only thing I can found is slightly different from yours, although it touches some n8n node package I don't know.
*2026-05-26T00:01:05Z â ¼[1G[0K==> Starting N8N 2026-05-26T00:01:08Z Last session crashed 2026-05-26T00:01:10.000Z => Healthcheck error: Error: connect ECONNREFUSED 172.18.17.212:5678 2026-05-26T00:01:18Z 2026-05-26T00:01:18Z 2026-05-26T00:01:18Z [31mNode loader n8n-nodes-base is already registered.[39m 2026-05-26T00:01:18Z Error: [31mNode loader n8n-nodes-base is already registered.[39m 2026-05-26T00:01:18Z Error: [31mNode loader n8n-nodes-base is already registered.[39m 2026-05-26T00:01:18Z Error: Exiting due to an error.*
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login