night 2026-09-25: Part C nights 5-6, Part D floor + arrival, Part E bench/box proofs (n8n, mealie), teardown of 9202 and bench
gates / gates (push) Successful in 25s

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-24 23:50:35 +02:00
parent a7971c4822
commit 593312daf4
65 changed files with 3195 additions and 50 deletions
@@ -0,0 +1,109 @@
[21:03:08] scratch drive folders cleared before FROM (R-656): none existed
[21:03:08] MV-mealie: deploying mealie at FROM {'mealie': 'ghcr.io/mealie-recipes/mealie:v3.27.0'}
[21:04:20] FROM settled=True in 30.9s :: {"mealie": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[21:04:20] fixture: the BOX walk's own (Mealie), through upgrade_boxport
[21:04:22] mealie: create recipe http=201
[21:04:22] mealie: readback of the seeded recipe http=200 ok=True
[21:04:22] C1 (seed reads back BEFORE): True
[21:04:22] MV-mealie: swapping to TO {'mealie': 'ghcr.io/mealie-recipes/mealie:v3.28.0'}
[21:05:08] TO up -d rc=0
[21:05:39] TO settled=True in 30.8s :: {"mealie": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[21:05:39] migration lines observed: 2
[21:05:40] mealie: readback of the seeded recipe http=200 ok=True
[21:05:40] RESULT (seed reads back AFTER): True
[21:05:40] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:9000
[21:05:55] + 15s mealie=233M/1000M peak=233M kills=0 rs=0 reqs=273
[21:06:10] + 30s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=553
[21:06:26] + 45s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=834
[21:06:41] + 60s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=1106
[21:06:56] + 76s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=1386
[21:07:11] + 91s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=1666
[21:07:26] + 106s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=1946
[21:07:41] + 121s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=2226
[21:07:56] + 136s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=2506
[21:08:11] + 151s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=2786
[21:08:26] + 166s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=3066
[21:08:42] + 181s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=3346
[21:08:57] + 197s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=3623
[21:09:12] + 212s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=3902
[21:09:27] + 227s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=4183
[21:09:42] + 242s mealie=231M/1000M peak=242M kills=0 rs=0 reqs=4464
[21:09:57] + 257s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=4745
[21:10:12] + 272s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=5026
[21:10:27] + 287s mealie=236M/1000M peak=242M kills=0 rs=0 reqs=5308
[21:10:43] + 302s mealie=237M/1000M peak=246M kills=0 rs=0 reqs=5588
[21:10:58] + 318s mealie=237M/1000M peak=246M kills=0 rs=0 reqs=5869
[21:11:13] + 333s mealie=237M/1000M peak=246M kills=0 rs=0 reqs=6154
[21:11:28] + 348s mealie=236M/1000M peak=246M kills=0 rs=0 reqs=6434
[21:11:43] + 363s mealie=237M/1000M peak=246M kills=0 rs=0 reqs=6714
[21:11:58] + 378s mealie=237M/1000M peak=246M kills=0 rs=0 reqs=6994
[21:12:13] + 393s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=7278
[21:12:28] + 408s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=7558
[21:12:44] + 423s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=7838
[21:12:59] + 438s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=8118
[21:13:14] + 454s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=8399
[21:13:29] + 469s mealie=238M/1000M peak=247M kills=0 rs=0 reqs=8679
[21:13:44] + 484s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=8963
[21:13:59] + 499s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=9243
[21:14:14] + 514s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=9523
[21:14:29] + 529s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=9803
[21:14:45] + 544s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=10083
[21:15:00] + 560s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=10363
[21:15:15] + 575s mealie=238M/1000M peak=247M kills=0 rs=0 reqs=10643
[21:15:30] + 590s mealie=238M/1000M peak=247M kills=0 rs=0 reqs=10923
[21:15:45] + 605s mealie=238M/1000M peak=247M kills=0 rs=0 reqs=11203
[21:15:45] memory watch: killed=False tight=[] requests=11203 codes={'200': 11203}
[21:15:45] MV-mealie: ABORT — putting the FROM images back
[21:16:19] mealie: readback of the seeded recipe http=200 ok=True
[21:16:19] ABORT: app came back in 30.8s; data present=True
{
"harness_version": 3,
"edge": "MV-mealie",
"app": "mealie",
"note": "night 2026-09-23 within-a-major move: mealie=ghcr.io/mealie-recipes/mealie:v3.28.0",
"from": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.27.0"
},
"to": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
},
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"migration_observed": "\u001b[2Kmealie | INFO 2026-09-24T23:05:15 - setup plugin alembic.autogenerate.schemas",
"abort": "starts-and-serves",
"abort_detail": null,
"engine_state_after": null,
"memory": {
"soak_s": 604.9,
"requested_s": 600,
"requests": 11203,
"codes": {
"200": 11203
},
"first_kill": null,
"containers": {
"mealie": {
"limit": 1048576000,
"peak": 259948544,
"peak_pct": 0.248,
"anon_peak_sampled": 242405376,
"anon_peak_pct": 0.231,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
}
},
"unmeasured": [],
"load": "reached"
},
"marks": [],
"duration_s": 30.8,
"measured_at": "2026-09-24T21:16:19Z",
"evidence": "evidence/MV-mealie",
"scratch_cleared": [],
"files_changed": [],
"total_s": 791.4
}
@@ -0,0 +1,8 @@
{
"mealie": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
}
}
@@ -0,0 +1,130 @@
mealie | Switching to dedicated user
mealie |
mealie | User uid: 1000
mealie | User gid: 1000
mealie |
mealie | INFO 2026-09-24T23:15:53 - Started server process [1]
mealie | INFO 2026-09-24T23:15:53 - Waiting for application startup.
mealie | INFO 2026-09-24T23:15:53 - start: database initialization
mealie | INFO 2026-09-24T23:15:53 - setup plugin alembic.autogenerate.schemas
mealie | INFO 2026-09-24T23:15:53 - setup plugin alembic.autogenerate.tables
mealie | INFO 2026-09-24T23:15:53 - setup plugin alembic.autogenerate.types
mealie | INFO 2026-09-24T23:15:53 - setup plugin alembic.autogenerate.constraints
mealie | INFO 2026-09-24T23:15:53 - setup plugin alembic.autogenerate.defaults
mealie | INFO 2026-09-24T23:15:53 - setup plugin alembic.autogenerate.comments
mealie | INFO 2026-09-24T23:15:53 - setup plugin alembic.ext.checkconstraint_byname
mealie | INFO 2026-09-24T23:15:53 - Database connection established.
mealie | INFO 2026-09-24T23:15:53 - Context impl SQLiteImpl.
mealie | INFO 2026-09-24T23:15:53 - Will assume non-transactional DDL.
mealie | INFO 2026-09-24T23:15:54 - end: database initialization
mealie | INFO 2026-09-24T23:15:54 - -----SYSTEM STARTUP-----
mealie | INFO 2026-09-24T23:15:54 - ------APP SETTINGS------
mealie | INFO 2026-09-24T23:15:54 - {
mealie | "TESTING": false,
mealie | "PRODUCTION": true,
mealie | "LOG_CONFIG_OVERRIDE": null,
mealie | "LOG_LEVEL": "info",
mealie | "theme": {
mealie | "light_primary": "#E58325",
mealie | "light_accent": "#007A99",
mealie | "light_secondary": "#973542",
mealie | "light_success": "#43A047",
mealie | "light_info": "#1976D2",
mealie | "light_warning": "#FF6D00",
mealie | "light_error": "#EF5350",
mealie | "dark_primary": "#E58325",
mealie | "dark_accent": "#007A99",
mealie | "dark_secondary": "#973542",
mealie | "dark_success": "#43A047",
mealie | "dark_info": "#1976D2",
mealie | "dark_warning": "#FF6D00",
mealie | "dark_error": "#EF5350"
mealie | },
mealie | "BASE_URL": "https://recipes.gate.invalid",
mealie | "STATIC_FILES": "/opt/mealie/lib/python3.12/site-packages/mealie/frontend",
mealie | "IS_DEMO": false,
mealie | "HOST_IP": "*",
mealie | "API_HOST": "0.0.0.0",
mealie | "API_PORT": 9000,
mealie | "API_DOCS": true,
mealie | "TOKEN_TIME": 48,
mealie | "GIT_COMMIT_HASH": "dedc6cc75f2bd8e89108ad998970e7bdf6d4444f",
mealie | "ALLOW_SIGNUP": false,
mealie | "ALLOW_PASSWORD_LOGIN": true,
mealie | "ALLOWED_IFRAME_HOSTS": "",
mealie | "HTTP_ALLOW_LIST": "",
mealie | "HTTP_DISALLOW_LIST": "",
mealie | "DAILY_SCHEDULE_TIME": "23:45",
mealie | "SECURITY_MAX_LOGIN_ATTEMPTS": 5,
mealie | "SECURITY_USER_LOCKOUT_TIME": 24,
mealie | "DB_ENGINE": "sqlite",
mealie | "SQLITE_MIGRATE_JOURNAL_WAL": false,
mealie | "DEFAULT_GROUP": "Home",
mealie | "DEFAULT_HOUSEHOLD": "Family",
mealie | "SMTP_HOST": "",
mealie | "SMTP_PORT": "25",
mealie | "SMTP_FROM_NAME": "",
mealie | "SMTP_FROM_EMAIL": "",
mealie | "SMTP_USER": null,
mealie | "SMTP_PASSWORD": null,
mealie | "SMTP_AUTH_STRATEGY": "NONE",
mealie | "LDAP_AUTH_ENABLED": false,
mealie | "LDAP_SERVER_URL": null,
mealie | "LDAP_TLS_INSECURE": false,
mealie | "LDAP_TLS_CACERTFILE": null,
mealie | "LDAP_ENABLE_STARTTLS": false,
mealie | "LDAP_BASE_DN": null,
mealie | "LDAP_QUERY_BIND": null,
mealie | "LDAP_QUERY_PASSWORD": null,
mealie | "LDAP_USER_FILTER": null,
mealie | "LDAP_ADMIN_FILTER": null,
mealie | "LDAP_ID_ATTRIBUTE": "uid",
mealie | "LDAP_MAIL_ATTRIBUTE": "mail",
mealie | "LDAP_NAME_ATTRIBUTE": "name",
mealie | "OIDC_AUTH_ENABLED": false,
mealie | "OIDC_CLIENT_ID": null,
mealie | "OIDC_CLIENT_SECRET": null,
mealie | "OIDC_CONFIGURATION_URL": null,
mealie | "OIDC_SIGNUP_ENABLED": true,
mealie | "OIDC_REQUIRES_EMAIL_VERIFICATION": true,
mealie | "OIDC_USER_GROUP": null,
mealie | "OIDC_ADMIN_GROUP": null,
mealie | "OIDC_AUTO_REDIRECT": false,
mealie | "OIDC_PROVIDER_NAME": "OAuth",
mealie | "OIDC_REMEMBER_ME": false,
mealie | "OIDC_USER_CLAIM": "email",
mealie | "OIDC_NAME_CLAIM": "name",
mealie | "OIDC_GROUPS_CLAIM": "groups",
mealie | "OIDC_SCOPES_OVERRIDE": null,
mealie | "OIDC_TLS_CACERTFILE": null,
mealie | "OIDC_CLIENT_TIMEOUT": "default",
mealie | "OPENAI_CUSTOM_PROMPT_DIR": null,
mealie | "SCRAPER_PROXY_URL": null,
mealie | "SCRAPER_PROXY_MODE": "always",
mealie | "SCRAPER_FLARESOLVERR_URL": null,
mealie | "SCRAPER_FLARESOLVERR_TIMEOUT": 60,
mealie | "WORKER_PER_CORE": 1,
mealie | "UVICORN_WORKERS": 1,
mealie | "TLS_CERTIFICATE_PATH": null,
mealie | "TLS_PRIVATE_KEY_PATH": null,
mealie | "YTDLP_COOKIEFILE": null
mealie | }
mealie | INFO 2026-09-24T23:15:54 - ------APP FEATURES------
mealie | INFO 2026-09-24T23:15:54 - --------==SMTP==--------
mealie | INFO 2026-09-24T23:15:54 - Enabled: False
mealie | INFO 2026-09-24T23:15:54 - --------==LDAP==--------
mealie | INFO 2026-09-24T23:15:54 - Enabled: False
mealie | Reason: LDAP_AUTH_ENABLED is false
mealie | INFO 2026-09-24T23:15:54 - --------==OIDC==--------
mealie | INFO 2026-09-24T23:15:54 - Enabled: False
mealie | Reason: OIDC_AUTH_ENABLED is false
mealie | INFO 2026-09-24T23:15:54 - ------------------------
mealie | INFO 2026-09-24T23:15:54 - Daily tasks scheduled for 2026-09-24 21:45:00+00:00
mealie | INFO 2026-09-24T23:15:54 - Application startup complete.
mealie | INFO 2026-09-24T23:15:54 - Uvicorn running on http://0.0.0.0:9000 (Press CTRL+C to quit)
mealie | INFO 2026-09-24T23:16:18 - [172.18.0.1:51188] 200 OK "GET /api/app/about HTTP/1.1"
mealie | INFO 2026-09-24T23:16:19 - [172.18.0.1:51190] 200 OK "POST /api/auth/token HTTP/1.1"
mealie | ERROR 2026-09-24T23:16:19 - No Entry Found on recipe controller action
mealie | ERROR 2026-09-24T23:16:19 - No Entry Found on recipe controller action
mealie | INFO 2026-09-24T23:16:19 - [172.18.0.1:51196] 404 Not Found "GET /api/recipes/nope3ad6c81756 HTTP/1.1"
mealie | INFO 2026-09-24T23:16:19 - [172.18.0.1:51210] 200 OK "GET /api/recipes/drill-f89036ca19 HTTP/1.1"
@@ -0,0 +1,682 @@
[
{
"t": 15.1,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 244416512,
"peak": 244547584,
"anon": 236642304,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 273
},
{
"t": 30.2,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 243523584,
"peak": 254533632,
"anon": 236732416,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 553
},
{
"t": 45.4,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 244187136,
"peak": 254533632,
"anon": 236867584,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 834
},
{
"t": 60.5,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 244080640,
"peak": 254533632,
"anon": 236990464,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 1106
},
{
"t": 75.6,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 244125696,
"peak": 254533632,
"anon": 237010944,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 1386
},
{
"t": 90.7,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 244408320,
"peak": 254533632,
"anon": 237019136,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 1666
},
{
"t": 105.8,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 244506624,
"peak": 254533632,
"anon": 237051904,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 1946
},
{
"t": 121.0,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 244248576,
"peak": 254533632,
"anon": 237051904,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 2226
},
{
"t": 136.1,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 244543488,
"peak": 254533632,
"anon": 237080576,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 2506
},
{
"t": 151.2,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 244613120,
"peak": 254533632,
"anon": 237117440,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 2786
},
{
"t": 166.3,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 244895744,
"peak": 254533632,
"anon": 237117440,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 3066
},
{
"t": 181.4,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 244695040,
"peak": 254533632,
"anon": 237133824,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 3346
},
{
"t": 196.6,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 244715520,
"peak": 254533632,
"anon": 237133824,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 3623
},
{
"t": 211.7,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 244482048,
"peak": 254578688,
"anon": 237142016,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 3902
},
{
"t": 226.8,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 244252672,
"peak": 254578688,
"anon": 237142016,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 4183
},
{
"t": 241.9,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 243073024,
"peak": 254578688,
"anon": 237142016,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 4464
},
{
"t": 257.1,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 243355648,
"peak": 254578688,
"anon": 237154304,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 4745
},
{
"t": 272.2,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 243384320,
"peak": 254578688,
"anon": 237154304,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 5026
},
{
"t": 287.3,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 248209408,
"peak": 254578688,
"anon": 241786880,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 5308
},
{
"t": 302.4,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 248594432,
"peak": 258437120,
"anon": 241901568,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 5588
},
{
"t": 317.5,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 248688640,
"peak": 258437120,
"anon": 241971200,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 5869
},
{
"t": 332.7,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 248758272,
"peak": 258650112,
"anon": 241979392,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 6154
},
{
"t": 347.8,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 248369152,
"peak": 258650112,
"anon": 241991680,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 6434
},
{
"t": 362.9,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 249188352,
"peak": 258772992,
"anon": 242012160,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 6714
},
{
"t": 378.0,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 248520704,
"peak": 258772992,
"anon": 242012160,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 6994
},
{
"t": 393.1,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 249061376,
"peak": 259117056,
"anon": 242032640,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 7278
},
{
"t": 408.3,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 249348096,
"peak": 259117056,
"anon": 242044928,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 7558
},
{
"t": 423.4,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 249180160,
"peak": 259117056,
"anon": 242044928,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 7838
},
{
"t": 438.5,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 249430016,
"peak": 259117056,
"anon": 242061312,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 8118
},
{
"t": 453.6,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 248782848,
"peak": 259362816,
"anon": 242065408,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 8399
},
{
"t": 468.8,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 249790464,
"peak": 259362816,
"anon": 242069504,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 8679
},
{
"t": 483.9,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 249417728,
"peak": 259362816,
"anon": 242081792,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 8963
},
{
"t": 499.0,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 249401344,
"peak": 259362816,
"anon": 242081792,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 9243
},
{
"t": 514.1,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 249503744,
"peak": 259493888,
"anon": 242081792,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 9523
},
{
"t": 529.2,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 249491456,
"peak": 259493888,
"anon": 242098176,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 9803
},
{
"t": 544.4,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 249380864,
"peak": 259493888,
"anon": 242098176,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 10083
},
{
"t": 559.5,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 249401344,
"peak": 259493888,
"anon": 242110464,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 10363
},
{
"t": 574.6,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 250253312,
"peak": 259796992,
"anon": 242118656,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 10643
},
{
"t": 589.7,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 249692160,
"peak": 259796992,
"anon": 242339840,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 10923
},
{
"t": 604.8,
"containers": {
"mealie": {
"limit": 1048576000,
"current": 250163200,
"peak": 259948544,
"anon": 242405376,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 11203
}
]
@@ -0,0 +1,2 @@
mealie | INFO 2026-09-24T23:05:15 - setup plugin alembic.autogenerate.schemas
mealie | "SQLITE_MIGRATE_JOURNAL_WAL": false,
@@ -0,0 +1,58 @@
[21:03:08] scratch drive folders cleared before FROM (R-656): none existed
[21:03:08] MV-mealie: deploying mealie at FROM {'mealie': 'ghcr.io/mealie-recipes/mealie:v3.27.0'}
[21:04:20] FROM settled=True in 30.9s :: {"mealie": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[21:04:20] fixture: the BOX walk's own (Mealie), through upgrade_boxport
[21:04:22] mealie: create recipe http=201
[21:04:22] mealie: readback of the seeded recipe http=200 ok=True
[21:04:22] C1 (seed reads back BEFORE): True
[21:04:22] MV-mealie: swapping to TO {'mealie': 'ghcr.io/mealie-recipes/mealie:v3.28.0'}
[21:05:08] TO up -d rc=0
[21:05:39] TO settled=True in 30.8s :: {"mealie": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[21:05:39] migration lines observed: 2
[21:05:40] mealie: readback of the seeded recipe http=200 ok=True
[21:05:40] RESULT (seed reads back AFTER): True
[21:05:40] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:9000
[21:05:55] + 15s mealie=233M/1000M peak=233M kills=0 rs=0 reqs=273
[21:06:10] + 30s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=553
[21:06:26] + 45s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=834
[21:06:41] + 60s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=1106
[21:06:56] + 76s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=1386
[21:07:11] + 91s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=1666
[21:07:26] + 106s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=1946
[21:07:41] + 121s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=2226
[21:07:56] + 136s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=2506
[21:08:11] + 151s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=2786
[21:08:26] + 166s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=3066
[21:08:42] + 181s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=3346
[21:08:57] + 197s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=3623
[21:09:12] + 212s mealie=233M/1000M peak=242M kills=0 rs=0 reqs=3902
[21:09:27] + 227s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=4183
[21:09:42] + 242s mealie=231M/1000M peak=242M kills=0 rs=0 reqs=4464
[21:09:57] + 257s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=4745
[21:10:12] + 272s mealie=232M/1000M peak=242M kills=0 rs=0 reqs=5026
[21:10:27] + 287s mealie=236M/1000M peak=242M kills=0 rs=0 reqs=5308
[21:10:43] + 302s mealie=237M/1000M peak=246M kills=0 rs=0 reqs=5588
[21:10:58] + 318s mealie=237M/1000M peak=246M kills=0 rs=0 reqs=5869
[21:11:13] + 333s mealie=237M/1000M peak=246M kills=0 rs=0 reqs=6154
[21:11:28] + 348s mealie=236M/1000M peak=246M kills=0 rs=0 reqs=6434
[21:11:43] + 363s mealie=237M/1000M peak=246M kills=0 rs=0 reqs=6714
[21:11:58] + 378s mealie=237M/1000M peak=246M kills=0 rs=0 reqs=6994
[21:12:13] + 393s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=7278
[21:12:28] + 408s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=7558
[21:12:44] + 423s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=7838
[21:12:59] + 438s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=8118
[21:13:14] + 454s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=8399
[21:13:29] + 469s mealie=238M/1000M peak=247M kills=0 rs=0 reqs=8679
[21:13:44] + 484s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=8963
[21:13:59] + 499s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=9243
[21:14:14] + 514s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=9523
[21:14:29] + 529s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=9803
[21:14:45] + 544s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=10083
[21:15:00] + 560s mealie=237M/1000M peak=247M kills=0 rs=0 reqs=10363
[21:15:15] + 575s mealie=238M/1000M peak=247M kills=0 rs=0 reqs=10643
[21:15:30] + 590s mealie=238M/1000M peak=247M kills=0 rs=0 reqs=10923
[21:15:45] + 605s mealie=238M/1000M peak=247M kills=0 rs=0 reqs=11203
[21:15:45] memory watch: killed=False tight=[] requests=11203 codes={'200': 11203}
[21:15:45] MV-mealie: ABORT — putting the FROM images back
[21:16:19] mealie: readback of the seeded recipe http=200 ok=True
[21:16:19] ABORT: app came back in 30.8s; data present=True
@@ -0,0 +1,125 @@
mealie | Switching to dedicated user
mealie |
mealie | User uid: 1000
mealie | User gid: 1000
mealie |
mealie | INFO 2026-09-24T23:05:15 - Started server process [1]
mealie | INFO 2026-09-24T23:05:15 - Waiting for application startup.
mealie | INFO 2026-09-24T23:05:15 - start: database initialization
mealie | INFO 2026-09-24T23:05:15 - setup plugin alembic.autogenerate.schemas
mealie | INFO 2026-09-24T23:05:15 - setup plugin alembic.autogenerate.tables
mealie | INFO 2026-09-24T23:05:15 - setup plugin alembic.autogenerate.types
mealie | INFO 2026-09-24T23:05:15 - setup plugin alembic.autogenerate.constraints
mealie | INFO 2026-09-24T23:05:15 - setup plugin alembic.autogenerate.defaults
mealie | INFO 2026-09-24T23:05:15 - setup plugin alembic.autogenerate.comments
mealie | INFO 2026-09-24T23:05:15 - setup plugin alembic.ext.checkconstraint_byname
mealie | INFO 2026-09-24T23:05:15 - Database connection established.
mealie | INFO 2026-09-24T23:05:15 - Context impl SQLiteImpl.
mealie | INFO 2026-09-24T23:05:15 - Will assume non-transactional DDL.
mealie | INFO 2026-09-24T23:05:16 - end: database initialization
mealie | INFO 2026-09-24T23:05:16 - -----SYSTEM STARTUP-----
mealie | INFO 2026-09-24T23:05:16 - ------APP SETTINGS------
mealie | INFO 2026-09-24T23:05:16 - {
mealie | "TESTING": false,
mealie | "PRODUCTION": true,
mealie | "LOG_CONFIG_OVERRIDE": null,
mealie | "LOG_LEVEL": "info",
mealie | "theme": {
mealie | "light_primary": "#E58325",
mealie | "light_accent": "#007A99",
mealie | "light_secondary": "#973542",
mealie | "light_success": "#43A047",
mealie | "light_info": "#1976D2",
mealie | "light_warning": "#FF6D00",
mealie | "light_error": "#EF5350",
mealie | "dark_primary": "#E58325",
mealie | "dark_accent": "#007A99",
mealie | "dark_secondary": "#973542",
mealie | "dark_success": "#43A047",
mealie | "dark_info": "#1976D2",
mealie | "dark_warning": "#FF6D00",
mealie | "dark_error": "#EF5350"
mealie | },
mealie | "BASE_URL": "https://recipes.gate.invalid",
mealie | "STATIC_FILES": "/opt/mealie/lib/python3.14/site-packages/mealie/frontend",
mealie | "IS_DEMO": false,
mealie | "HOST_IP": "*",
mealie | "API_HOST": "0.0.0.0",
mealie | "API_PORT": 9000,
mealie | "API_DOCS": true,
mealie | "TOKEN_TIME": 48,
mealie | "GIT_COMMIT_HASH": "0552eaa4a80031b8572849cca0ed95d07f1be001",
mealie | "ALLOW_SIGNUP": false,
mealie | "ALLOW_PASSWORD_LOGIN": true,
mealie | "ALLOWED_IFRAME_HOSTS": "",
mealie | "HTTP_ALLOW_LIST": "",
mealie | "HTTP_DISALLOW_LIST": "",
mealie | "DAILY_SCHEDULE_TIME": "23:45",
mealie | "SECURITY_MAX_LOGIN_ATTEMPTS": 5,
mealie | "SECURITY_USER_LOCKOUT_TIME": 24,
mealie | "DB_ENGINE": "sqlite",
mealie | "SQLITE_MIGRATE_JOURNAL_WAL": false,
mealie | "DEFAULT_GROUP": "Home",
mealie | "DEFAULT_HOUSEHOLD": "Family",
mealie | "SMTP_HOST": "",
mealie | "SMTP_PORT": "25",
mealie | "SMTP_FROM_NAME": "",
mealie | "SMTP_FROM_EMAIL": "",
mealie | "SMTP_USER": null,
mealie | "SMTP_PASSWORD": null,
mealie | "SMTP_AUTH_STRATEGY": "NONE",
mealie | "LDAP_AUTH_ENABLED": false,
mealie | "LDAP_SERVER_URL": null,
mealie | "LDAP_TLS_INSECURE": false,
mealie | "LDAP_TLS_CACERTFILE": null,
mealie | "LDAP_ENABLE_STARTTLS": false,
mealie | "LDAP_BASE_DN": null,
mealie | "LDAP_QUERY_BIND": null,
mealie | "LDAP_QUERY_PASSWORD": null,
mealie | "LDAP_USER_FILTER": null,
mealie | "LDAP_ADMIN_FILTER": null,
mealie | "LDAP_ID_ATTRIBUTE": "uid",
mealie | "LDAP_MAIL_ATTRIBUTE": "mail",
mealie | "LDAP_NAME_ATTRIBUTE": "name",
mealie | "OIDC_AUTH_ENABLED": false,
mealie | "OIDC_CLIENT_ID": null,
mealie | "OIDC_CLIENT_SECRET": null,
mealie | "OIDC_CONFIGURATION_URL": null,
mealie | "OIDC_SIGNUP_ENABLED": true,
mealie | "OIDC_REQUIRES_EMAIL_VERIFICATION": true,
mealie | "OIDC_USER_GROUP": null,
mealie | "OIDC_ADMIN_GROUP": null,
mealie | "OIDC_AUTO_REDIRECT": false,
mealie | "OIDC_PROVIDER_NAME": "OAuth",
mealie | "OIDC_REMEMBER_ME": false,
mealie | "OIDC_USER_CLAIM": "email",
mealie | "OIDC_NAME_CLAIM": "name",
mealie | "OIDC_GROUPS_CLAIM": "groups",
mealie | "OIDC_SCOPES_OVERRIDE": null,
mealie | "OIDC_TLS_CACERTFILE": null,
mealie | "OIDC_CLIENT_TIMEOUT": "default",
mealie | "OPENAI_CUSTOM_PROMPT_DIR": null,
mealie | "SCRAPER_PROXY_URL": null,
mealie | "SCRAPER_PROXY_MODE": "always",
mealie | "SCRAPER_FLARESOLVERR_URL": null,
mealie | "SCRAPER_FLARESOLVERR_TIMEOUT": 60,
mealie | "WORKER_PER_CORE": 1,
mealie | "UVICORN_WORKERS": 1,
mealie | "TLS_CERTIFICATE_PATH": null,
mealie | "TLS_PRIVATE_KEY_PATH": null,
mealie | "YTDLP_COOKIEFILE": null
mealie | }
mealie | INFO 2026-09-24T23:05:16 - ------APP FEATURES------
mealie | INFO 2026-09-24T23:05:16 - --------==SMTP==--------
mealie | INFO 2026-09-24T23:05:16 - Enabled: False
mealie | Reason: Missing required values for ['SMTP_HOST', 'SMTP_FROM_NAME', 'SMTP_FROM_EMAIL']
mealie | INFO 2026-09-24T23:05:16 - --------==LDAP==--------
mealie | INFO 2026-09-24T23:05:16 - Enabled: False
mealie | Reason: LDAP_AUTH_ENABLED is false
mealie | INFO 2026-09-24T23:05:16 - --------==OIDC==--------
mealie | INFO 2026-09-24T23:05:16 - Enabled: False
mealie | Reason: OIDC_AUTH_ENABLED is false
mealie | INFO 2026-09-24T23:05:16 - ------------------------
mealie | INFO 2026-09-24T23:05:16 - Daily tasks scheduled for 2026-09-24 21:45:00+00:00
mealie | INFO 2026-09-24T23:05:16 - Application startup complete.
mealie | INFO 2026-09-24T23:05:16 - Uvicorn running on http://0.0.0.0:9000 (Press CTRL+C to quit)
@@ -0,0 +1,8 @@
{
"mealie": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
}
}
@@ -0,0 +1,51 @@
{
"harness_version": 3,
"edge": "MV-mealie",
"app": "mealie",
"note": "night 2026-09-23 within-a-major move: mealie=ghcr.io/mealie-recipes/mealie:v3.28.0",
"from": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.27.0"
},
"to": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
},
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"migration_observed": "\u001b[2Kmealie | INFO 2026-09-24T23:05:15 - setup plugin alembic.autogenerate.schemas",
"abort": "starts-and-serves",
"abort_detail": null,
"engine_state_after": null,
"memory": {
"soak_s": 604.9,
"requested_s": 600,
"requests": 11203,
"codes": {
"200": 11203
},
"first_kill": null,
"containers": {
"mealie": {
"limit": 1048576000,
"peak": 259948544,
"peak_pct": 0.248,
"anon_peak_sampled": 242405376,
"anon_peak_pct": 0.231,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
}
},
"unmeasured": [],
"load": "reached"
},
"marks": [],
"duration_s": 30.8,
"measured_at": "2026-09-24T21:16:19Z",
"evidence": "evidence/MV-mealie",
"scratch_cleared": [],
"files_changed": [],
"total_s": 791.4
}
@@ -0,0 +1,131 @@
mealie | Switching to dedicated user
mealie |
mealie | User uid: 1000
mealie | User gid: 1000
mealie |
mealie | INFO 2026-09-24T23:10:01 - Started server process [1]
mealie | INFO 2026-09-24T23:10:01 - Waiting for application startup.
mealie | INFO 2026-09-24T23:10:01 - start: database initialization
mealie | INFO 2026-09-24T23:10:01 - setup plugin alembic.autogenerate.schemas
mealie | INFO 2026-09-24T23:10:01 - setup plugin alembic.autogenerate.tables
mealie | INFO 2026-09-24T23:10:01 - setup plugin alembic.autogenerate.types
mealie | INFO 2026-09-24T23:10:01 - setup plugin alembic.autogenerate.constraints
mealie | INFO 2026-09-24T23:10:01 - setup plugin alembic.autogenerate.defaults
mealie | INFO 2026-09-24T23:10:01 - setup plugin alembic.autogenerate.comments
mealie | INFO 2026-09-24T23:10:01 - setup plugin alembic.ext.checkconstraint_byname
mealie | INFO 2026-09-24T23:10:01 - Database connection established.
mealie | INFO 2026-09-24T23:10:01 - Context impl SQLiteImpl.
mealie | INFO 2026-09-24T23:10:01 - Will assume non-transactional DDL.
mealie | INFO 2026-09-24T23:10:02 - end: database initialization
mealie | INFO 2026-09-24T23:10:02 - -----SYSTEM STARTUP-----
mealie | INFO 2026-09-24T23:10:02 - ------APP SETTINGS------
mealie | INFO 2026-09-24T23:10:02 - {
mealie | "TESTING": false,
mealie | "PRODUCTION": true,
mealie | "LOG_CONFIG_OVERRIDE": null,
mealie | "LOG_LEVEL": "info",
mealie | "theme": {
mealie | "light_primary": "#E58325",
mealie | "light_accent": "#007A99",
mealie | "light_secondary": "#973542",
mealie | "light_success": "#43A047",
mealie | "light_info": "#1976D2",
mealie | "light_warning": "#FF6D00",
mealie | "light_error": "#EF5350",
mealie | "dark_primary": "#E58325",
mealie | "dark_accent": "#007A99",
mealie | "dark_secondary": "#973542",
mealie | "dark_success": "#43A047",
mealie | "dark_info": "#1976D2",
mealie | "dark_warning": "#FF6D00",
mealie | "dark_error": "#EF5350"
mealie | },
mealie | "BASE_URL": "https://recipes.enkisfelhom.hu",
mealie | "STATIC_FILES": "/opt/mealie/lib/python3.14/site-packages/mealie/frontend",
mealie | "IS_DEMO": false,
mealie | "HOST_IP": "*",
mealie | "API_HOST": "0.0.0.0",
mealie | "API_PORT": 9000,
mealie | "API_DOCS": true,
mealie | "TOKEN_TIME": 48,
mealie | "GIT_COMMIT_HASH": "0552eaa4a80031b8572849cca0ed95d07f1be001",
mealie | "ALLOW_SIGNUP": false,
mealie | "ALLOW_PASSWORD_LOGIN": true,
mealie | "ALLOWED_IFRAME_HOSTS": "",
mealie | "HTTP_ALLOW_LIST": "",
mealie | "HTTP_DISALLOW_LIST": "",
mealie | "DAILY_SCHEDULE_TIME": "23:45",
mealie | "SECURITY_MAX_LOGIN_ATTEMPTS": 5,
mealie | "SECURITY_USER_LOCKOUT_TIME": 24,
mealie | "DB_ENGINE": "sqlite",
mealie | "SQLITE_MIGRATE_JOURNAL_WAL": false,
mealie | "DEFAULT_GROUP": "Home",
mealie | "DEFAULT_HOUSEHOLD": "Family",
mealie | "SMTP_HOST": "",
mealie | "SMTP_PORT": "25",
mealie | "SMTP_FROM_NAME": "",
mealie | "SMTP_FROM_EMAIL": "",
mealie | "SMTP_USER": null,
mealie | "SMTP_PASSWORD": null,
mealie | "SMTP_AUTH_STRATEGY": "NONE",
mealie | "LDAP_AUTH_ENABLED": false,
mealie | "LDAP_SERVER_URL": null,
mealie | "LDAP_TLS_INSECURE": false,
mealie | "LDAP_TLS_CACERTFILE": null,
mealie | "LDAP_ENABLE_STARTTLS": false,
mealie | "LDAP_BASE_DN": null,
mealie | "LDAP_QUERY_BIND": null,
mealie | "LDAP_QUERY_PASSWORD": null,
mealie | "LDAP_USER_FILTER": null,
mealie | "LDAP_ADMIN_FILTER": null,
mealie | "LDAP_ID_ATTRIBUTE": "uid",
mealie | "LDAP_MAIL_ATTRIBUTE": "mail",
mealie | "LDAP_NAME_ATTRIBUTE": "name",
mealie | "OIDC_AUTH_ENABLED": false,
mealie | "OIDC_CLIENT_ID": null,
mealie | "OIDC_CLIENT_SECRET": null,
mealie | "OIDC_CONFIGURATION_URL": null,
mealie | "OIDC_SIGNUP_ENABLED": true,
mealie | "OIDC_REQUIRES_EMAIL_VERIFICATION": true,
mealie | "OIDC_USER_GROUP": null,
mealie | "OIDC_ADMIN_GROUP": null,
mealie | "OIDC_AUTO_REDIRECT": false,
mealie | "OIDC_PROVIDER_NAME": "OAuth",
mealie | "OIDC_REMEMBER_ME": false,
mealie | "OIDC_USER_CLAIM": "email",
mealie | "OIDC_NAME_CLAIM": "name",
mealie | "OIDC_GROUPS_CLAIM": "groups",
mealie | "OIDC_SCOPES_OVERRIDE": null,
mealie | "OIDC_TLS_CACERTFILE": null,
mealie | "OIDC_CLIENT_TIMEOUT": "default",
mealie | "OPENAI_CUSTOM_PROMPT_DIR": null,
mealie | "SCRAPER_PROXY_URL": null,
mealie | "SCRAPER_PROXY_MODE": "always",
mealie | "SCRAPER_FLARESOLVERR_URL": null,
mealie | "SCRAPER_FLARESOLVERR_TIMEOUT": 60,
mealie | "WORKER_PER_CORE": 1,
mealie | "UVICORN_WORKERS": 1,
mealie | "TLS_CERTIFICATE_PATH": null,
mealie | "TLS_PRIVATE_KEY_PATH": null,
mealie | "YTDLP_COOKIEFILE": null
mealie | }
mealie | INFO 2026-09-24T23:10:02 - ------APP FEATURES------
mealie | INFO 2026-09-24T23:10:02 - --------==SMTP==--------
mealie | INFO 2026-09-24T23:10:02 - Enabled: False
mealie | Reason: Missing required values for ['SMTP_HOST', 'SMTP_FROM_NAME', 'SMTP_FROM_EMAIL']
mealie | INFO 2026-09-24T23:10:02 - --------==LDAP==--------
mealie | INFO 2026-09-24T23:10:02 - Enabled: False
mealie | Reason: LDAP_AUTH_ENABLED is false
mealie | INFO 2026-09-24T23:10:02 - --------==OIDC==--------
mealie | INFO 2026-09-24T23:10:02 - Enabled: False
mealie | Reason: OIDC_AUTH_ENABLED is false
mealie | INFO 2026-09-24T23:10:02 - ------------------------
mealie | INFO 2026-09-24T23:10:02 - Daily tasks scheduled for 2026-09-24 21:45:00+00:00
mealie | INFO 2026-09-24T23:10:02 - Application startup complete.
mealie | INFO 2026-09-24T23:10:02 - Uvicorn running on http://0.0.0.0:9000 (Press CTRL+C to quit)
mealie | INFO 2026-09-24T23:10:10 - [192.168.0.180:0] 200 OK "GET /api/app/about HTTP/1.1"
mealie | INFO 2026-09-24T23:10:11 - [192.168.0.180:0] 200 OK "POST /api/auth/token HTTP/1.1"
mealie | ERROR 2026-09-24T23:10:11 - No Entry Found on recipe controller action
mealie | ERROR 2026-09-24T23:10:11 - No Entry Found on recipe controller action
mealie | INFO 2026-09-24T23:10:11 - [192.168.0.180:0] 404 Not Found "GET /api/recipes/noped73dff1dc3 HTTP/1.1"
mealie | INFO 2026-09-24T23:10:11 - [192.168.0.180:0] 200 OK "GET /api/recipes/drill-ae68ffc580 HTTP/1.1"
@@ -0,0 +1,31 @@
{
"before": {
"hu": [
{
"title": "Ez az alkalmazás a legfrissebb elérhető változatot futtatja.",
"text": "Naprakész"
}
],
"en": [
{
"title": "This app is running the newest version available.",
"text": "Up to date"
}
]
},
"after": {
"hu": [
{
"title": "Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.",
"text": "Frissítés elérhető — ma"
}
],
"en": [
{
"title": "A newer version of this app is available. Select the Update button to start it.",
"text": "Update available — today"
}
]
},
"drill_commit": "15e2ed57c844"
}
@@ -0,0 +1,30 @@
23:08:28 ==== mealie: ghcr.io/mealie-recipes/mealie:v3.27.0 -> ghcr.io/mealie-recipes/mealie:v3.28.0 (sub=recipes, class=other)
23:08:31 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
23:08:56 [1] deployed, controller state=running, pinned={'mealie': 'ghcr.io/mealie-recipes/mealie:v3.27.0'}
23:08:59 [2] seeding through the app's own front door
23:09:00 mealie: create recipe http=201
23:09:00 [3] control C1 — reading the seed back BEFORE the update
23:09:00 mealie: readback of the seeded recipe http=200 ok=True
23:09:00 [4] backup press SKIPPED for mealie (R-648: whole-box only; the update's backing-up phase backs up mealie alone)
23:09:02 [5] drill commit 15e2ed57c844: mealie ghcr.io/mealie-recipes/mealie:v3.27.0 -> ghcr.io/mealie-recipes/mealie:v3.28.0 (push rc=0)
23:09:06 [5] badge HU: [{'title': 'Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.', 'text': 'Frissítés elérhető — ma'}]
23:09:06 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
23:09:06 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
23:09:07 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
23:09:10 + 3.1s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
23:09:11 + 4.1s phase=pulling label=Új verzió letöltése… err=None hold=None
23:09:50 + 43.1s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
23:09:55 + 48.5s phase=verifying label=Működés ellenőrzése… err=None hold=None
23:10:10 + 63.9s phase=done label=Frissítve err=None hold=None
23:10:10 [7] reading the seed back AFTER the update
23:10:11 mealie: readback of the seeded recipe http=200 ok=True
23:10:15 [8] pinned = {'mealie': 'ghcr.io/mealie-recipes/mealie:v3.28.0'}
23:10:15 [8] installed = {'mealie': 'ghcr.io/mealie-recipes/mealie:v3.28.0'}
23:10:15 [8] compose = ['image: ghcr.io/mealie-recipes/mealie:v3.28.0']
23:10:15 [8] inspect = ['mealie ghcr.io/mealie-recipes/mealie:v3.28.0 running=true restarts=0']
23:10:15 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/night-2026-09-25/tools/../E/apps/mealie/box/verdict.json
23:10:17 [X] stop -> 200 {'ok': True, 'message': 'Stack mealie stop completed'}
23:10:48 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'mealie', 'volumes_removed': ['mealie_mealie_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
23:10:57 [X] after remove: deployed=False leftovers='/opt/docker/stacks/mealie'
23:12:00 [X] R-626 check +60 s after remove: 'clean'
23:12:00 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/night-2026-09-25/tools/../E/apps/mealie/box/verdict.json
@@ -0,0 +1,17 @@
{
"pinned_images": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.27.0"
},
"installed_images": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.27.0"
},
"catalog_images": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.27.0"
},
"live_compose_image_lines": [
"image: ghcr.io/mealie-recipes/mealie:v3.27.0@sha256:ba24b88462380fb59a6c7d04c6d9e607e0b6b04e31306592181186bcdab1952b"
],
"docker_inspect": [
"mealie ghcr.io/mealie-recipes/mealie:v3.27.0@sha256:ba24b88462380fb59a6c7d04c6d9e607e0b6b04e31306592181186bcdab1952b running=true restarts=0"
]
}
@@ -0,0 +1,36 @@
{
"before": {
"pinned_images": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.27.0"
},
"installed_images": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.27.0"
},
"catalog_images": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.27.0"
},
"live_compose_image_lines": [
"image: ghcr.io/mealie-recipes/mealie:v3.27.0@sha256:ba24b88462380fb59a6c7d04c6d9e607e0b6b04e31306592181186bcdab1952b"
],
"docker_inspect": [
"mealie ghcr.io/mealie-recipes/mealie:v3.27.0@sha256:ba24b88462380fb59a6c7d04c6d9e607e0b6b04e31306592181186bcdab1952b running=true restarts=0"
]
},
"after": {
"pinned_images": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
},
"installed_images": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
},
"catalog_images": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
},
"live_compose_image_lines": [
"image: ghcr.io/mealie-recipes/mealie:v3.28.0"
],
"docker_inspect": [
"mealie ghcr.io/mealie-recipes/mealie:v3.28.0 running=true restarts=0"
]
}
}
@@ -0,0 +1,59 @@
{
"accepted": true,
"http": "202",
"phases": [
{
"t": 0.0,
"phase": "backing-up",
"label": "Biztonsági mentés készül a frissítés előtt…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 3.1,
"phase": "safety-dump",
"label": "Adatbázis pillanatkép…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 4.1,
"phase": "pulling",
"label": "Új verzió letöltése…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 43.1,
"phase": "copying",
"label": "Az adatok másolása a frissítés előtt…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 48.5,
"phase": "verifying",
"label": "Működés ellenőrzése…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 63.9,
"phase": "done",
"label": "Frissítve",
"updating": false,
"error": null,
"hold": null
}
],
"duration_s": 63.9,
"final_phase": "done",
"update_error": null,
"hold_reason": null,
"state": "running"
}
@@ -0,0 +1,45 @@
{
"harness_version": 1,
"app": "mealie",
"venue": "guest 9202 demo-hp-scratch, controller 0.271.0, drill catalog",
"class": "other",
"from": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.27.0"
},
"to": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
},
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"migration_observed": "mealie | \"SQLITE_MIGRATE_JOURNAL_WAL\": false,",
"abort": "not-attempted",
"abort_detail": null,
"duration_s": 63.9,
"measured_at": "2026-09-24T21:08:28.178039+00:00",
"evidence": "apps/mealie/",
"notes": [],
"badge_catchup_seconds": 4.6,
"observables_after": {
"pinned_images": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
},
"installed_images": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
},
"catalog_images": {
"mealie": "ghcr.io/mealie-recipes/mealie:v3.28.0"
},
"live_compose_image_lines": [
"image: ghcr.io/mealie-recipes/mealie:v3.28.0"
],
"docker_inspect": [
"mealie ghcr.io/mealie-recipes/mealie:v3.28.0 running=true restarts=0"
]
},
"final_phase": "done",
"hold_reason": null,
"update_error": null,
"r626_at_60s": "clean"
}
@@ -0,0 +1,30 @@
[21:02:01] scratch drive folders cleared before FROM (R-656): none existed
[21:02:01] MV-n8n: deploying n8n at FROM {'n8n': 'n8nio/n8n:2.41.1'}
[21:02:47] FROM deploy FAILED — inconclusive, the edge was never reached
{
"harness_version": 3,
"edge": "MV-n8n",
"app": "n8n",
"note": "night 2026-09-23 within-a-major move: n8n=alpine:3.20",
"from": {
"n8n": "n8nio/n8n:2.41.1"
},
"to": {
"n8n": "alpine:3.20"
},
"verdict": "inconclusive",
"seed_read_before": false,
"seed_read_after": false,
"healthy_after": false,
"migration_observed": null,
"abort": "not-attempted",
"abort_detail": "FROM deploy failed rc=1: ===========================================>] 10.15MB/10.15MB\n c16728afba34 Pull complete \n eed4985bb3f6 Extracting [========> ] 32.77kB/199.8kB\n eed4985bb3f6 Extracting [==================================================>] 199.8kB/199.8kB\n eed4985bb3f6 Extracting [==================================================>] 199.8kB/199.8kB\n eed4985bb3f6 Pull complete \n 475391c2daa8 Extracting [========> ] 32.77kB/200.6kB\n 475391c2daa8 Extracting [==================================================>] 200.6kB/200.6kB\n 475391c2daa8 Extracting [==================================================>] 200.6kB/200.6kB\n 475391c2daa8 Pull complete \n n8n Pulled \nError response from daemon: network traefik-public not found\n",
"engine_state_after": null,
"memory": null,
"marks": [],
"duration_s": 46.7,
"measured_at": "2026-09-24T21:02:47Z",
"evidence": "evidence/MV-n8n",
"scratch_cleared": [],
"total_s": 46.7
}
@@ -0,0 +1,3 @@
[21:02:01] scratch drive folders cleared before FROM (R-656): none existed
[21:02:01] MV-n8n: deploying n8n at FROM {'n8n': 'n8nio/n8n:2.41.1'}
[21:02:47] FROM deploy FAILED — inconclusive, the edge was never reached
@@ -0,0 +1,27 @@
{
"harness_version": 3,
"edge": "MV-n8n",
"app": "n8n",
"note": "night 2026-09-23 within-a-major move: n8n=alpine:3.20",
"from": {
"n8n": "n8nio/n8n:2.41.1"
},
"to": {
"n8n": "alpine:3.20"
},
"verdict": "inconclusive",
"seed_read_before": false,
"seed_read_after": false,
"healthy_after": false,
"migration_observed": null,
"abort": "not-attempted",
"abort_detail": "FROM deploy failed rc=1: ===========================================>] 10.15MB/10.15MB\n c16728afba34 Pull complete \n eed4985bb3f6 Extracting [========> ] 32.77kB/199.8kB\n eed4985bb3f6 Extracting [==================================================>] 199.8kB/199.8kB\n eed4985bb3f6 Extracting [==================================================>] 199.8kB/199.8kB\n eed4985bb3f6 Pull complete \n 475391c2daa8 Extracting [========> ] 32.77kB/200.6kB\n 475391c2daa8 Extracting [==================================================>] 200.6kB/200.6kB\n 475391c2daa8 Extracting [==================================================>] 200.6kB/200.6kB\n 475391c2daa8 Pull complete \n n8n Pulled \nError response from daemon: network traefik-public not found\n",
"engine_state_after": null,
"memory": null,
"marks": [],
"duration_s": 46.7,
"measured_at": "2026-09-24T21:02:47Z",
"evidence": "evidence/MV-n8n",
"scratch_cleared": [],
"total_s": 46.7
}
@@ -1,6 +1,18 @@
[21:02:01] scratch drive folders cleared before FROM (R-656): none existed
[21:02:01] MV-n8n: deploying n8n at FROM {'n8n': 'n8nio/n8n:2.41.1'}
[21:02:47] FROM deploy FAILED — inconclusive, the edge was never reached
[21:16:45] scratch drive folders cleared before FROM (R-656): none existed
[21:16:45] MV-n8n: deploying n8n at FROM {'n8n': 'n8nio/n8n:2.41.1'}
[21:17:16] FROM settled=True in 30.8s :: {"n8n": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[21:17:16] fixture: the BOX walk's own (N8n), through upgrade_boxport
[21:17:16] n8n: /rest/owner/setup http=200
[21:17:17] n8n: login as the seeded owner http=200 ok=True
[21:17:17] C1 (seed reads back BEFORE): True
[21:17:17] MV-n8n: swapping to TO {'n8n': 'alpine:3.20'}
[21:17:22] TO up -d rc=0
[21:24:27] TO settled=False in 424.7s :: {"n8n": {"status": "restarting", "health": "unhealthy", "restarts": 0, "exit": 0}}
[21:24:27] migration lines observed: 0
[21:31:59] RESULT (seed reads back AFTER): False
[21:31:59] MV-n8n: ABORT — putting the FROM images back
[21:32:31] n8n: login as the seeded owner http=200 ok=True
[21:32:31] ABORT: app came back in 30.8s; data present=True
{
"harness_version": 3,
"edge": "MV-n8n",
@@ -12,19 +24,20 @@
"to": {
"n8n": "alpine:3.20"
},
"verdict": "inconclusive",
"seed_read_before": false,
"verdict": "failed",
"seed_read_before": true,
"seed_read_after": false,
"healthy_after": false,
"migration_observed": null,
"abort": "not-attempted",
"abort_detail": "FROM deploy failed rc=1: ===========================================>] 10.15MB/10.15MB\n c16728afba34 Pull complete \n eed4985bb3f6 Extracting [========> ] 32.77kB/199.8kB\n eed4985bb3f6 Extracting [==================================================>] 199.8kB/199.8kB\n eed4985bb3f6 Extracting [==================================================>] 199.8kB/199.8kB\n eed4985bb3f6 Pull complete \n 475391c2daa8 Extracting [========> ] 32.77kB/200.6kB\n 475391c2daa8 Extracting [==================================================>] 200.6kB/200.6kB\n 475391c2daa8 Extracting [==================================================>] 200.6kB/200.6kB\n 475391c2daa8 Pull complete \n n8n Pulled \nError response from daemon: network traefik-public not found\n",
"abort": "starts-and-serves",
"abort_detail": null,
"engine_state_after": null,
"memory": null,
"marks": [],
"duration_s": 46.7,
"measured_at": "2026-09-24T21:02:47Z",
"duration_s": 424.7,
"measured_at": "2026-09-24T21:32:31Z",
"evidence": "evidence/MV-n8n",
"scratch_cleared": [],
"total_s": 46.7
"files_changed": [],
"total_s": 946.3
}
@@ -0,0 +1,8 @@
{
"n8n": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
}
}
@@ -0,0 +1,78 @@
n8n | Initializing n8n process
n8n | n8n ready on ::, port 5678
n8n | n8n Task Broker ready on 127.0.0.1, port 5679
n8n | Failed to start Python task runner in internal mode. because Python 3 is missing from this system. Launching a Python runner in internal mode is intended only for debugging and is not recommended for production. Users are encouraged to deploy in external mode. See: https://docs.n8n.io/hosting/configuration/task-runners/#setting-up-external-mode
n8n |
n8n | There are deprecations related to your n8n setup. Please take the recommended actions to update your configuration:
n8n | - WEBHOOK_URL -> Use N8N_WEBHOOK_URL instead, which sets the base URL for both test and production webhooks.
n8n | - N8N_UNVERIFIED_PACKAGES_ENABLED -> The default for this variable will change to `false` in a future version. Set it to `true` explicitly to keep installing unverified community packages.
n8n | - N8N_RUNNERS_MODE -> Internal task runner mode is deprecated and will be removed in a future version. For isolation and scaling, run the task runner launcher as a separate process, set this variable to `external` and share `N8N_RUNNERS_AUTH_TOKEN` with the launcher. See https://docs.n8n.io/deploy/host-n8n/configure-n8n/set-up-task-runners
n8n | - N8N_RUNNERS_TASK_TIMEOUT -> The default for this variable will be reduced from 300 (5 minutes) to 60 (1 minute) in a future version. Set it explicitly to keep your current task timeout.
n8n | - N8N_COMPRESSION_NODE_MAX_DECOMPRESSED_SIZE_BYTES -> The default for this variable will be reduced from 2 GiB to 256 MiB in a future version. Set it explicitly to keep your current limit.
n8n | - N8N_COMPRESSION_NODE_MAX_ZIP_ENTRIES -> The default for this variable will be reduced from 5000 to 1000 in a future version. Set it explicitly to keep your current limit.
n8n |
n8n | [license SDK] Skipping renewal on init: license cert is not initialized
n8n | [runner:js] (node:19) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.
n8n | (Use `node --trace-warnings ...` to show where the warning was created)
n8n | Registered runner "JS Task Runner" (aYGuVbIduiOH4bKyj3mR8)
n8n | Instance registered
n8n | Discovered 4 cluster checks
n8n | Sandbox: enabled=false provider=n8n-sandbox (from env)
n8n | Version: 2.41.1
n8n | Building workflow dependency index...
n8n | Finished building workflow dependency index. Processed 0 draft workflows, 0 published workflows.
n8n |
n8n | Editor is now accessible via:
n8n | https://auto.gate.invalid
n8n | 2026-09-24T21:32:10.528Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:32:10.746Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:32:11.161Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:32:12.028Z [Rudder] error: Error: ECONNREFUSED
n8n | connect ECONNREFUSED 0.0.0.0:443
n8n | Error: connect ECONNREFUSED 0.0.0.0:443
n8n | at AxiosError.from (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:1355:24)
n8n | at RedirectableRequest.handleRequestError (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:4026:25)
n8n | at RedirectableRequest.emit (node:events:526:24)
n8n | at ClientRequest.eventHandlers.<computed> (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/follow-redirects@1.16.0_debug@4.4.3_supports-color@8.1.1_/node_modules/follow-redirects/index.js:56:24)
n8n | at ClientRequest.emit (node:events:514:20)
n8n | at emitErrorEvent (node:_http_client:114:11)
n8n | at TLSSocket.socketErrorListener (node:_http_client:768:5)
n8n | at TLSSocket.emit (node:events:526:24)
n8n | at emitErrorNT (node:internal/streams/destroy:170:8)
n8n | at emitErrorCloseNT (node:internal/streams/destroy:129:3)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5427:41)
n8n | at processTicksAndRejections (node:internal/process/task_queues:104:5)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n |
n8n | connect ECONNREFUSED 0.0.0.0:443
n8n | Error: connect ECONNREFUSED 0.0.0.0:443
n8n | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16)
n8n |
n8n | 2026-09-24T21:32:20.487Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:32:20.696Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:32:21.123Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:32:21.948Z [Rudder] error: Error: ECONNREFUSED
n8n | connect ECONNREFUSED 0.0.0.0:443
n8n | Error: connect ECONNREFUSED 0.0.0.0:443
n8n | at AxiosError.from (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:1355:24)
n8n | at RedirectableRequest.handleRequestError (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:4026:25)
n8n | at RedirectableRequest.emit (node:events:526:24)
n8n | at ClientRequest.eventHandlers.<computed> (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/follow-redirects@1.16.0_debug@4.4.3_supports-color@8.1.1_/node_modules/follow-redirects/index.js:56:24)
n8n | at ClientRequest.emit (node:events:514:20)
n8n | at emitErrorEvent (node:_http_client:114:11)
n8n | at TLSSocket.socketErrorListener (node:_http_client:768:5)
n8n | at TLSSocket.emit (node:events:526:24)
n8n | at emitErrorNT (node:internal/streams/destroy:170:8)
n8n | at emitErrorCloseNT (node:internal/streams/destroy:129:3)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5427:41)
n8n | at processTicksAndRejections (node:internal/process/task_queues:104:5)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n |
n8n | connect ECONNREFUSED 0.0.0.0:443
n8n | Error: connect ECONNREFUSED 0.0.0.0:443
n8n | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16)
n8n |
@@ -1,3 +1,15 @@
[21:02:01] scratch drive folders cleared before FROM (R-656): none existed
[21:02:01] MV-n8n: deploying n8n at FROM {'n8n': 'n8nio/n8n:2.41.1'}
[21:02:47] FROM deploy FAILED — inconclusive, the edge was never reached
[21:16:45] scratch drive folders cleared before FROM (R-656): none existed
[21:16:45] MV-n8n: deploying n8n at FROM {'n8n': 'n8nio/n8n:2.41.1'}
[21:17:16] FROM settled=True in 30.8s :: {"n8n": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[21:17:16] fixture: the BOX walk's own (N8n), through upgrade_boxport
[21:17:16] n8n: /rest/owner/setup http=200
[21:17:17] n8n: login as the seeded owner http=200 ok=True
[21:17:17] C1 (seed reads back BEFORE): True
[21:17:17] MV-n8n: swapping to TO {'n8n': 'alpine:3.20'}
[21:17:22] TO up -d rc=0
[21:24:27] TO settled=False in 424.7s :: {"n8n": {"status": "restarting", "health": "unhealthy", "restarts": 0, "exit": 0}}
[21:24:27] migration lines observed: 0
[21:31:59] RESULT (seed reads back AFTER): False
[21:31:59] MV-n8n: ABORT — putting the FROM images back
[21:32:31] n8n: login as the seeded owner http=200 ok=True
[21:32:31] ABORT: app came back in 30.8s; data present=True
@@ -0,0 +1,8 @@
{
"n8n": {
"status": "restarting",
"health": "unhealthy",
"restarts": 0,
"exit": 0
}
}
@@ -9,19 +9,20 @@
"to": {
"n8n": "alpine:3.20"
},
"verdict": "inconclusive",
"seed_read_before": false,
"verdict": "failed",
"seed_read_before": true,
"seed_read_after": false,
"healthy_after": false,
"migration_observed": null,
"abort": "not-attempted",
"abort_detail": "FROM deploy failed rc=1: ===========================================>] 10.15MB/10.15MB\n c16728afba34 Pull complete \n eed4985bb3f6 Extracting [========> ] 32.77kB/199.8kB\n eed4985bb3f6 Extracting [==================================================>] 199.8kB/199.8kB\n eed4985bb3f6 Extracting [==================================================>] 199.8kB/199.8kB\n eed4985bb3f6 Pull complete \n 475391c2daa8 Extracting [========> ] 32.77kB/200.6kB\n 475391c2daa8 Extracting [==================================================>] 200.6kB/200.6kB\n 475391c2daa8 Extracting [==================================================>] 200.6kB/200.6kB\n 475391c2daa8 Pull complete \n n8n Pulled \nError response from daemon: network traefik-public not found\n",
"abort": "starts-and-serves",
"abort_detail": null,
"engine_state_after": null,
"memory": null,
"marks": [],
"duration_s": 46.7,
"measured_at": "2026-09-24T21:02:47Z",
"duration_s": 424.7,
"measured_at": "2026-09-24T21:32:31Z",
"evidence": "evidence/MV-n8n",
"scratch_cleared": [],
"total_s": 46.7
"files_changed": [],
"total_s": 946.3
}
@@ -0,0 +1,30 @@
[21:02:58] scratch drive folders cleared before FROM (R-656): none existed
[21:02:58] MV-n8n: deploying n8n at FROM {'n8n': 'n8nio/n8n:2.41.1'}
[21:02:58] FROM deploy FAILED — inconclusive, the edge was never reached
{
"harness_version": 3,
"edge": "MV-n8n",
"app": "n8n",
"note": "night 2026-09-23 within-a-major move: n8n=n8nio/n8n:2.41.2",
"from": {
"n8n": "n8nio/n8n:2.41.1"
},
"to": {
"n8n": "n8nio/n8n:2.41.2"
},
"verdict": "inconclusive",
"seed_read_before": false,
"seed_read_after": false,
"healthy_after": false,
"migration_observed": null,
"abort": "not-attempted",
"abort_detail": "FROM deploy failed rc=1: Error response from daemon: network traefik-public not found\n",
"engine_state_after": null,
"memory": null,
"marks": [],
"duration_s": 0.1,
"measured_at": "2026-09-24T21:02:58Z",
"evidence": "evidence/MV-n8n",
"scratch_cleared": [],
"total_s": 0.1
}
@@ -0,0 +1,3 @@
[21:02:58] scratch drive folders cleared before FROM (R-656): none existed
[21:02:58] MV-n8n: deploying n8n at FROM {'n8n': 'n8nio/n8n:2.41.1'}
[21:02:58] FROM deploy FAILED — inconclusive, the edge was never reached
@@ -0,0 +1,27 @@
{
"harness_version": 3,
"edge": "MV-n8n",
"app": "n8n",
"note": "night 2026-09-23 within-a-major move: n8n=n8nio/n8n:2.41.2",
"from": {
"n8n": "n8nio/n8n:2.41.1"
},
"to": {
"n8n": "n8nio/n8n:2.41.2"
},
"verdict": "inconclusive",
"seed_read_before": false,
"seed_read_after": false,
"healthy_after": false,
"migration_observed": null,
"abort": "not-attempted",
"abort_detail": "FROM deploy failed rc=1: Error response from daemon: network traefik-public not found\n",
"engine_state_after": null,
"memory": null,
"marks": [],
"duration_s": 0.1,
"measured_at": "2026-09-24T21:02:58Z",
"evidence": "evidence/MV-n8n",
"scratch_cleared": [],
"total_s": 0.1
}
@@ -1,6 +1,61 @@
[21:02:58] scratch drive folders cleared before FROM (R-656): none existed
[21:02:58] MV-n8n: deploying n8n at FROM {'n8n': 'n8nio/n8n:2.41.1'}
[21:02:58] FROM deploy FAILED — inconclusive, the edge was never reached
[21:32:40] scratch drive folders cleared before FROM (R-656): none existed
[21:32:40] MV-n8n: deploying n8n at FROM {'n8n': 'n8nio/n8n:2.41.1'}
[21:33:12] FROM settled=True in 30.8s :: {"n8n": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[21:33:12] fixture: the BOX walk's own (N8n), through upgrade_boxport
[21:33:12] n8n: /rest/owner/setup http=200
[21:33:12] n8n: login as the seeded owner http=200 ok=True
[21:33:12] C1 (seed reads back BEFORE): True
[21:33:12] MV-n8n: swapping to TO {'n8n': 'n8nio/n8n:2.41.2'}
[21:34:05] TO up -d rc=0
[21:34:36] TO settled=True in 30.8s :: {"n8n": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[21:34:36] migration lines observed: 0
[21:34:36] n8n: login as the seeded owner http=200 ok=True
[21:34:36] RESULT (seed reads back AFTER): True
[21:34:37] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:5678
[21:34:52] + 15s n8n=534M/1536M peak=859M kills=0 rs=0 reqs=300
[21:35:07] + 30s n8n=541M/1536M peak=859M kills=0 rs=0 reqs=596
[21:35:22] + 45s n8n=551M/1536M peak=859M kills=0 rs=0 reqs=896
[21:35:37] + 60s n8n=558M/1536M peak=859M kills=0 rs=0 reqs=1195
[21:35:52] + 76s n8n=561M/1536M peak=859M kills=0 rs=0 reqs=1492
[21:36:07] + 91s n8n=565M/1536M peak=859M kills=0 rs=0 reqs=1792
[21:36:22] + 106s n8n=566M/1536M peak=859M kills=0 rs=0 reqs=2088
[21:36:38] + 121s n8n=572M/1536M peak=859M kills=0 rs=0 reqs=2388
[21:36:53] + 136s n8n=568M/1536M peak=859M kills=0 rs=0 reqs=2688
[21:37:08] + 151s n8n=571M/1536M peak=859M kills=0 rs=0 reqs=2984
[21:37:23] + 166s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=3284
[21:37:38] + 181s n8n=573M/1536M peak=859M kills=0 rs=0 reqs=3580
[21:37:53] + 196s n8n=570M/1536M peak=859M kills=0 rs=0 reqs=3880
[21:38:08] + 212s n8n=572M/1536M peak=859M kills=0 rs=0 reqs=4180
[21:38:23] + 227s n8n=570M/1536M peak=859M kills=0 rs=0 reqs=4476
[21:38:38] + 242s n8n=573M/1536M peak=859M kills=0 rs=0 reqs=4776
[21:38:54] + 257s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=5076
[21:39:09] + 272s n8n=572M/1536M peak=859M kills=0 rs=0 reqs=5372
[21:39:24] + 287s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=5672
[21:39:39] + 302s n8n=573M/1536M peak=859M kills=0 rs=0 reqs=5972
[21:39:54] + 318s n8n=568M/1536M peak=859M kills=0 rs=0 reqs=6268
[21:40:09] + 333s n8n=571M/1536M peak=859M kills=0 rs=0 reqs=6568
[21:40:24] + 348s n8n=570M/1536M peak=859M kills=0 rs=0 reqs=6868
[21:40:39] + 363s n8n=572M/1536M peak=859M kills=0 rs=0 reqs=7164
[21:40:55] + 378s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=7464
[21:41:10] + 393s n8n=571M/1536M peak=859M kills=0 rs=0 reqs=7764
[21:41:25] + 408s n8n=570M/1536M peak=859M kills=0 rs=0 reqs=8060
[21:41:40] + 423s n8n=570M/1536M peak=859M kills=0 rs=0 reqs=8360
[21:41:55] + 438s n8n=573M/1536M peak=859M kills=0 rs=0 reqs=8658
[21:42:10] + 454s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=8956
[21:42:25] + 469s n8n=573M/1536M peak=859M kills=0 rs=0 reqs=9256
[21:42:40] + 484s n8n=570M/1536M peak=859M kills=0 rs=0 reqs=9556
[21:42:55] + 499s n8n=573M/1536M peak=859M kills=0 rs=0 reqs=9852
[21:43:11] + 514s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=10152
[21:43:26] + 529s n8n=572M/1536M peak=859M kills=0 rs=0 reqs=10448
[21:43:41] + 544s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=10748
[21:43:56] + 559s n8n=571M/1536M peak=859M kills=0 rs=0 reqs=11048
[21:44:11] + 574s n8n=568M/1536M peak=859M kills=0 rs=0 reqs=11344
[21:44:26] + 590s n8n=571M/1536M peak=859M kills=0 rs=0 reqs=11644
[21:44:41] + 605s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=11944
[21:44:42] memory watch: killed=False tight=[] requests=11944 codes={'200': 11944}
[21:44:42] MV-n8n: ABORT — putting the FROM images back
[21:45:14] n8n: login as the seeded owner http=200 ok=True
[21:45:14] ABORT: app came back in 30.8s; data present=True
{
"harness_version": 3,
"edge": "MV-n8n",
@@ -12,19 +67,43 @@
"to": {
"n8n": "n8nio/n8n:2.41.2"
},
"verdict": "inconclusive",
"seed_read_before": false,
"seed_read_after": false,
"healthy_after": false,
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"migration_observed": null,
"abort": "not-attempted",
"abort_detail": "FROM deploy failed rc=1: Error response from daemon: network traefik-public not found\n",
"abort": "starts-and-serves",
"abort_detail": null,
"engine_state_after": null,
"memory": null,
"memory": {
"soak_s": 605.0,
"requested_s": 600,
"requests": 11944,
"codes": {
"200": 11944
},
"first_kill": null,
"containers": {
"n8n": {
"limit": 1610612736,
"peak": 900997120,
"peak_pct": 0.559,
"anon_peak_sampled": 361549824,
"anon_peak_pct": 0.224,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
}
},
"unmeasured": [],
"load": "reached"
},
"marks": [],
"duration_s": 0.1,
"measured_at": "2026-09-24T21:02:58Z",
"duration_s": 30.8,
"measured_at": "2026-09-24T21:45:14Z",
"evidence": "evidence/MV-n8n",
"scratch_cleared": [],
"total_s": 0.1
"files_changed": [],
"total_s": 753.5
}
@@ -0,0 +1,8 @@
{
"n8n": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
}
}
@@ -0,0 +1,79 @@
n8n | Initializing n8n process
n8n | n8n ready on ::, port 5678
n8n | n8n Task Broker ready on 127.0.0.1, port 5679
n8n | Failed to start Python task runner in internal mode. because Python 3 is missing from this system. Launching a Python runner in internal mode is intended only for debugging and is not recommended for production. Users are encouraged to deploy in external mode. See: https://docs.n8n.io/hosting/configuration/task-runners/#setting-up-external-mode
n8n |
n8n | There are deprecations related to your n8n setup. Please take the recommended actions to update your configuration:
n8n | - WEBHOOK_URL -> Use N8N_WEBHOOK_URL instead, which sets the base URL for both test and production webhooks.
n8n | - N8N_UNVERIFIED_PACKAGES_ENABLED -> The default for this variable will change to `false` in a future version. Set it to `true` explicitly to keep installing unverified community packages.
n8n | - N8N_RUNNERS_MODE -> Internal task runner mode is deprecated and will be removed in a future version. For isolation and scaling, run the task runner launcher as a separate process, set this variable to `external` and share `N8N_RUNNERS_AUTH_TOKEN` with the launcher. See https://docs.n8n.io/deploy/host-n8n/configure-n8n/set-up-task-runners
n8n | - N8N_RUNNERS_TASK_TIMEOUT -> The default for this variable will be reduced from 300 (5 minutes) to 60 (1 minute) in a future version. Set it explicitly to keep your current task timeout.
n8n | - N8N_COMPRESSION_NODE_MAX_DECOMPRESSED_SIZE_BYTES -> The default for this variable will be reduced from 2 GiB to 256 MiB in a future version. Set it explicitly to keep your current limit.
n8n | - N8N_COMPRESSION_NODE_MAX_ZIP_ENTRIES -> The default for this variable will be reduced from 5000 to 1000 in a future version. Set it explicitly to keep your current limit.
n8n |
n8n | [license SDK] Skipping renewal on init: license cert is not initialized
n8n | [runner:js] (node:19) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.
n8n | (Use `node --trace-warnings ...` to show where the warning was created)
n8n | Instance registered
n8n | Discovered 4 cluster checks
n8n | Registered runner "JS Task Runner" (PyMOsbSyLFFrR9CbT6tue)
n8n | Recorded version change: 2.41.2 -> 2.41.1
n8n | Sandbox: enabled=false provider=n8n-sandbox (from env)
n8n | Version: 2.41.1
n8n | Building workflow dependency index...
n8n | Finished building workflow dependency index. Processed 0 draft workflows, 0 published workflows.
n8n |
n8n | Editor is now accessible via:
n8n | https://auto.gate.invalid
n8n | 2026-09-24T21:44:55.631Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:44:55.863Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:44:56.323Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:44:57.181Z [Rudder] error: Error: ECONNREFUSED
n8n | connect ECONNREFUSED 0.0.0.0:443
n8n | Error: connect ECONNREFUSED 0.0.0.0:443
n8n | at AxiosError.from (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:1355:24)
n8n | at RedirectableRequest.handleRequestError (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:4026:25)
n8n | at RedirectableRequest.emit (node:events:526:24)
n8n | at ClientRequest.eventHandlers.<computed> (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/follow-redirects@1.16.0_debug@4.4.3_supports-color@8.1.1_/node_modules/follow-redirects/index.js:56:24)
n8n | at ClientRequest.emit (node:events:514:20)
n8n | at emitErrorEvent (node:_http_client:114:11)
n8n | at TLSSocket.socketErrorListener (node:_http_client:768:5)
n8n | at TLSSocket.emit (node:events:526:24)
n8n | at emitErrorNT (node:internal/streams/destroy:170:8)
n8n | at emitErrorCloseNT (node:internal/streams/destroy:129:3)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5427:41)
n8n | at processTicksAndRejections (node:internal/process/task_queues:104:5)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n |
n8n | connect ECONNREFUSED 0.0.0.0:443
n8n | Error: connect ECONNREFUSED 0.0.0.0:443
n8n | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16)
n8n |
n8n | 2026-09-24T21:45:05.593Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:45:05.833Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:45:06.315Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:45:07.281Z [Rudder] error: Error: ECONNREFUSED
n8n | connect ECONNREFUSED 0.0.0.0:443
n8n | Error: connect ECONNREFUSED 0.0.0.0:443
n8n | at AxiosError.from (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:1355:24)
n8n | at RedirectableRequest.handleRequestError (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:4026:25)
n8n | at RedirectableRequest.emit (node:events:526:24)
n8n | at ClientRequest.eventHandlers.<computed> (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/follow-redirects@1.16.0_debug@4.4.3_supports-color@8.1.1_/node_modules/follow-redirects/index.js:56:24)
n8n | at ClientRequest.emit (node:events:514:20)
n8n | at emitErrorEvent (node:_http_client:114:11)
n8n | at TLSSocket.socketErrorListener (node:_http_client:768:5)
n8n | at TLSSocket.emit (node:events:526:24)
n8n | at emitErrorNT (node:internal/streams/destroy:170:8)
n8n | at emitErrorCloseNT (node:internal/streams/destroy:129:3)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5427:41)
n8n | at processTicksAndRejections (node:internal/process/task_queues:104:5)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n |
n8n | connect ECONNREFUSED 0.0.0.0:443
n8n | Error: connect ECONNREFUSED 0.0.0.0:443
n8n | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16)
n8n |
@@ -0,0 +1,682 @@
[
{
"t": 15.1,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 560967680,
"peak": 900997120,
"anon": 321933312,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 300
},
{
"t": 30.2,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 567631872,
"peak": 900997120,
"anon": 328048640,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 596
},
{
"t": 45.3,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 578404352,
"peak": 900997120,
"anon": 338776064,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 896
},
{
"t": 60.5,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 585572352,
"peak": 900997120,
"anon": 345919488,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 1195
},
{
"t": 75.6,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 588849152,
"peak": 900997120,
"anon": 349196288,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 1492
},
{
"t": 90.7,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 593432576,
"peak": 900997120,
"anon": 353181696,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 1792
},
{
"t": 105.8,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 594251776,
"peak": 900997120,
"anon": 354381824,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 2088
},
{
"t": 120.9,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 600371200,
"peak": 900997120,
"anon": 360312832,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 2388
},
{
"t": 136.1,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 596107264,
"peak": 900997120,
"anon": 355876864,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 2688
},
{
"t": 151.2,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 599703552,
"peak": 900997120,
"anon": 359514112,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 2984
},
{
"t": 166.3,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 597053440,
"peak": 900997120,
"anon": 357158912,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 3284
},
{
"t": 181.4,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 601079808,
"peak": 900997120,
"anon": 361152512,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 3580
},
{
"t": 196.5,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 598155264,
"peak": 900997120,
"anon": 358281216,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 3880
},
{
"t": 211.6,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 600809472,
"peak": 900997120,
"anon": 360697856,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 4180
},
{
"t": 226.8,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 597962752,
"peak": 900997120,
"anon": 357920768,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 4476
},
{
"t": 241.9,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 601468928,
"peak": 900997120,
"anon": 361324544,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 4776
},
{
"t": 257.0,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 596910080,
"peak": 900997120,
"anon": 357064704,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 5076
},
{
"t": 272.1,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 599937024,
"peak": 900997120,
"anon": 360054784,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 5372
},
{
"t": 287.2,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 597184512,
"peak": 900997120,
"anon": 357343232,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 5672
},
{
"t": 302.3,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 600834048,
"peak": 900997120,
"anon": 360603648,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 5972
},
{
"t": 317.5,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 596189184,
"peak": 900997120,
"anon": 356192256,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 6268
},
{
"t": 332.6,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 599523328,
"peak": 900997120,
"anon": 359497728,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 6568
},
{
"t": 347.7,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 597721088,
"peak": 900997120,
"anon": 357625856,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 6868
},
{
"t": 362.8,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 600268800,
"peak": 900997120,
"anon": 360304640,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 7164
},
{
"t": 377.9,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 596881408,
"peak": 900997120,
"anon": 356818944,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 7464
},
{
"t": 393.1,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 599068672,
"peak": 900997120,
"anon": 358682624,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 7764
},
{
"t": 408.2,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 598036480,
"peak": 900997120,
"anon": 358195200,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 8060
},
{
"t": 423.3,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 598544384,
"peak": 900997120,
"anon": 358514688,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 8360
},
{
"t": 438.4,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 601268224,
"peak": 900997120,
"anon": 360890368,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 8658
},
{
"t": 453.5,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 597635072,
"peak": 900997120,
"anon": 357748736,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 8956
},
{
"t": 468.7,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 601436160,
"peak": 900997120,
"anon": 361549824,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 9256
},
{
"t": 483.8,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 598605824,
"peak": 900997120,
"anon": 358170624,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 9556
},
{
"t": 498.9,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 600948736,
"peak": 900997120,
"anon": 360796160,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 9852
},
{
"t": 514.0,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 596881408,
"peak": 900997120,
"anon": 356691968,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 10152
},
{
"t": 529.1,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 599945216,
"peak": 900997120,
"anon": 360079360,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 10448
},
{
"t": 544.2,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 597213184,
"peak": 900997120,
"anon": 357093376,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 10748
},
{
"t": 559.4,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 599601152,
"peak": 900997120,
"anon": 359251968,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 11048
},
{
"t": 574.5,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 596357120,
"peak": 900997120,
"anon": 356507648,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 11344
},
{
"t": 589.6,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 599670784,
"peak": 900997120,
"anon": 359772160,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 11644
},
{
"t": 604.7,
"containers": {
"n8n": {
"limit": 1610612736,
"current": 597319680,
"peak": 900997120,
"anon": 356999168,
"oom_kill": 0,
"restarts": 0,
"oomkilled_flag": false,
"status": "running",
"cgroup": true
}
},
"requests": 11944
}
]
@@ -1,3 +1,58 @@
[21:02:58] scratch drive folders cleared before FROM (R-656): none existed
[21:02:58] MV-n8n: deploying n8n at FROM {'n8n': 'n8nio/n8n:2.41.1'}
[21:02:58] FROM deploy FAILED — inconclusive, the edge was never reached
[21:32:40] scratch drive folders cleared before FROM (R-656): none existed
[21:32:40] MV-n8n: deploying n8n at FROM {'n8n': 'n8nio/n8n:2.41.1'}
[21:33:12] FROM settled=True in 30.8s :: {"n8n": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[21:33:12] fixture: the BOX walk's own (N8n), through upgrade_boxport
[21:33:12] n8n: /rest/owner/setup http=200
[21:33:12] n8n: login as the seeded owner http=200 ok=True
[21:33:12] C1 (seed reads back BEFORE): True
[21:33:12] MV-n8n: swapping to TO {'n8n': 'n8nio/n8n:2.41.2'}
[21:34:05] TO up -d rc=0
[21:34:36] TO settled=True in 30.8s :: {"n8n": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[21:34:36] migration lines observed: 0
[21:34:36] n8n: login as the seeded owner http=200 ok=True
[21:34:36] RESULT (seed reads back AFTER): True
[21:34:37] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:5678
[21:34:52] + 15s n8n=534M/1536M peak=859M kills=0 rs=0 reqs=300
[21:35:07] + 30s n8n=541M/1536M peak=859M kills=0 rs=0 reqs=596
[21:35:22] + 45s n8n=551M/1536M peak=859M kills=0 rs=0 reqs=896
[21:35:37] + 60s n8n=558M/1536M peak=859M kills=0 rs=0 reqs=1195
[21:35:52] + 76s n8n=561M/1536M peak=859M kills=0 rs=0 reqs=1492
[21:36:07] + 91s n8n=565M/1536M peak=859M kills=0 rs=0 reqs=1792
[21:36:22] + 106s n8n=566M/1536M peak=859M kills=0 rs=0 reqs=2088
[21:36:38] + 121s n8n=572M/1536M peak=859M kills=0 rs=0 reqs=2388
[21:36:53] + 136s n8n=568M/1536M peak=859M kills=0 rs=0 reqs=2688
[21:37:08] + 151s n8n=571M/1536M peak=859M kills=0 rs=0 reqs=2984
[21:37:23] + 166s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=3284
[21:37:38] + 181s n8n=573M/1536M peak=859M kills=0 rs=0 reqs=3580
[21:37:53] + 196s n8n=570M/1536M peak=859M kills=0 rs=0 reqs=3880
[21:38:08] + 212s n8n=572M/1536M peak=859M kills=0 rs=0 reqs=4180
[21:38:23] + 227s n8n=570M/1536M peak=859M kills=0 rs=0 reqs=4476
[21:38:38] + 242s n8n=573M/1536M peak=859M kills=0 rs=0 reqs=4776
[21:38:54] + 257s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=5076
[21:39:09] + 272s n8n=572M/1536M peak=859M kills=0 rs=0 reqs=5372
[21:39:24] + 287s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=5672
[21:39:39] + 302s n8n=573M/1536M peak=859M kills=0 rs=0 reqs=5972
[21:39:54] + 318s n8n=568M/1536M peak=859M kills=0 rs=0 reqs=6268
[21:40:09] + 333s n8n=571M/1536M peak=859M kills=0 rs=0 reqs=6568
[21:40:24] + 348s n8n=570M/1536M peak=859M kills=0 rs=0 reqs=6868
[21:40:39] + 363s n8n=572M/1536M peak=859M kills=0 rs=0 reqs=7164
[21:40:55] + 378s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=7464
[21:41:10] + 393s n8n=571M/1536M peak=859M kills=0 rs=0 reqs=7764
[21:41:25] + 408s n8n=570M/1536M peak=859M kills=0 rs=0 reqs=8060
[21:41:40] + 423s n8n=570M/1536M peak=859M kills=0 rs=0 reqs=8360
[21:41:55] + 438s n8n=573M/1536M peak=859M kills=0 rs=0 reqs=8658
[21:42:10] + 454s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=8956
[21:42:25] + 469s n8n=573M/1536M peak=859M kills=0 rs=0 reqs=9256
[21:42:40] + 484s n8n=570M/1536M peak=859M kills=0 rs=0 reqs=9556
[21:42:55] + 499s n8n=573M/1536M peak=859M kills=0 rs=0 reqs=9852
[21:43:11] + 514s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=10152
[21:43:26] + 529s n8n=572M/1536M peak=859M kills=0 rs=0 reqs=10448
[21:43:41] + 544s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=10748
[21:43:56] + 559s n8n=571M/1536M peak=859M kills=0 rs=0 reqs=11048
[21:44:11] + 574s n8n=568M/1536M peak=859M kills=0 rs=0 reqs=11344
[21:44:26] + 590s n8n=571M/1536M peak=859M kills=0 rs=0 reqs=11644
[21:44:41] + 605s n8n=569M/1536M peak=859M kills=0 rs=0 reqs=11944
[21:44:42] memory watch: killed=False tight=[] requests=11944 codes={'200': 11944}
[21:44:42] MV-n8n: ABORT — putting the FROM images back
[21:45:14] n8n: login as the seeded owner http=200 ok=True
[21:45:14] ABORT: app came back in 30.8s; data present=True
@@ -0,0 +1,79 @@
n8n | Initializing n8n process
n8n | n8n ready on ::, port 5678
n8n | n8n Task Broker ready on 127.0.0.1, port 5679
n8n | Failed to start Python task runner in internal mode. because Python 3 is missing from this system. Launching a Python runner in internal mode is intended only for debugging and is not recommended for production. Users are encouraged to deploy in external mode. See: https://docs.n8n.io/hosting/configuration/task-runners/#setting-up-external-mode
n8n |
n8n | There are deprecations related to your n8n setup. Please take the recommended actions to update your configuration:
n8n | - WEBHOOK_URL -> Use N8N_WEBHOOK_URL instead, which sets the base URL for both test and production webhooks.
n8n | - N8N_UNVERIFIED_PACKAGES_ENABLED -> The default for this variable will change to `false` in a future version. Set it to `true` explicitly to keep installing unverified community packages.
n8n | - N8N_RUNNERS_MODE -> Internal task runner mode is deprecated and will be removed in a future version. For isolation and scaling, run the task runner launcher as a separate process, set this variable to `external` and share `N8N_RUNNERS_AUTH_TOKEN` with the launcher. See https://docs.n8n.io/deploy/host-n8n/configure-n8n/set-up-task-runners
n8n | - N8N_RUNNERS_TASK_TIMEOUT -> The default for this variable will be reduced from 300 (5 minutes) to 60 (1 minute) in a future version. Set it explicitly to keep your current task timeout.
n8n | - N8N_COMPRESSION_NODE_MAX_DECOMPRESSED_SIZE_BYTES -> The default for this variable will be reduced from 2 GiB to 256 MiB in a future version. Set it explicitly to keep your current limit.
n8n | - N8N_COMPRESSION_NODE_MAX_ZIP_ENTRIES -> The default for this variable will be reduced from 5000 to 1000 in a future version. Set it explicitly to keep your current limit.
n8n |
n8n | [license SDK] Skipping renewal on init: license cert is not initialized
n8n | [runner:js] (node:18) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.
n8n | (Use `node --trace-warnings ...` to show where the warning was created)
n8n | Instance registered
n8n | Discovered 4 cluster checks
n8n | Registered runner "JS Task Runner" (xxTnJzZRmCKsDTxaCZx3K)
n8n | Recorded version change: 2.41.1 -> 2.41.2
n8n | Sandbox: enabled=false provider=n8n-sandbox (from env)
n8n | Version: 2.41.2
n8n | Building workflow dependency index...
n8n | Finished building workflow dependency index. Processed 0 draft workflows, 0 published workflows.
n8n |
n8n | Editor is now accessible via:
n8n | https://auto.gate.invalid
n8n | 2026-09-24T21:34:15.893Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:34:16.104Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:34:16.512Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:34:17.424Z [Rudder] error: Error: ECONNREFUSED
n8n | connect ECONNREFUSED 0.0.0.0:443
n8n | Error: connect ECONNREFUSED 0.0.0.0:443
n8n | at AxiosError.from (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:1355:24)
n8n | at RedirectableRequest.handleRequestError (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:4026:25)
n8n | at RedirectableRequest.emit (node:events:526:24)
n8n | at ClientRequest.eventHandlers.<computed> (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/follow-redirects@1.16.0_debug@4.4.3_supports-color@8.1.1_/node_modules/follow-redirects/index.js:56:24)
n8n | at ClientRequest.emit (node:events:514:20)
n8n | at emitErrorEvent (node:_http_client:114:11)
n8n | at TLSSocket.socketErrorListener (node:_http_client:768:5)
n8n | at TLSSocket.emit (node:events:526:24)
n8n | at emitErrorNT (node:internal/streams/destroy:170:8)
n8n | at emitErrorCloseNT (node:internal/streams/destroy:129:3)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5427:41)
n8n | at processTicksAndRejections (node:internal/process/task_queues:104:5)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n |
n8n | connect ECONNREFUSED 0.0.0.0:443
n8n | Error: connect ECONNREFUSED 0.0.0.0:443
n8n | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16)
n8n |
n8n | 2026-09-24T21:34:25.862Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:34:26.068Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:34:26.507Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:34:27.327Z [Rudder] error: Error: ECONNREFUSED
n8n | connect ECONNREFUSED 0.0.0.0:443
n8n | Error: connect ECONNREFUSED 0.0.0.0:443
n8n | at AxiosError.from (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:1355:24)
n8n | at RedirectableRequest.handleRequestError (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:4026:25)
n8n | at RedirectableRequest.emit (node:events:526:24)
n8n | at ClientRequest.eventHandlers.<computed> (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/follow-redirects@1.16.0_debug@4.4.3_supports-color@8.1.1_/node_modules/follow-redirects/index.js:56:24)
n8n | at ClientRequest.emit (node:events:514:20)
n8n | at emitErrorEvent (node:_http_client:114:11)
n8n | at TLSSocket.socketErrorListener (node:_http_client:768:5)
n8n | at TLSSocket.emit (node:events:526:24)
n8n | at emitErrorNT (node:internal/streams/destroy:170:8)
n8n | at emitErrorCloseNT (node:internal/streams/destroy:129:3)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5427:41)
n8n | at processTicksAndRejections (node:internal/process/task_queues:104:5)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n |
n8n | connect ECONNREFUSED 0.0.0.0:443
n8n | Error: connect ECONNREFUSED 0.0.0.0:443
n8n | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16)
n8n |
@@ -0,0 +1,8 @@
{
"n8n": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
}
}
@@ -9,19 +9,43 @@
"to": {
"n8n": "n8nio/n8n:2.41.2"
},
"verdict": "inconclusive",
"seed_read_before": false,
"seed_read_after": false,
"healthy_after": false,
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"migration_observed": null,
"abort": "not-attempted",
"abort_detail": "FROM deploy failed rc=1: Error response from daemon: network traefik-public not found\n",
"abort": "starts-and-serves",
"abort_detail": null,
"engine_state_after": null,
"memory": null,
"memory": {
"soak_s": 605.0,
"requested_s": 600,
"requests": 11944,
"codes": {
"200": 11944
},
"first_kill": null,
"containers": {
"n8n": {
"limit": 1610612736,
"peak": 900997120,
"peak_pct": 0.559,
"anon_peak_sampled": 361549824,
"anon_peak_pct": 0.224,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
}
},
"unmeasured": [],
"load": "reached"
},
"marks": [],
"duration_s": 0.1,
"measured_at": "2026-09-24T21:02:58Z",
"duration_s": 30.8,
"measured_at": "2026-09-24T21:45:14Z",
"evidence": "evidence/MV-n8n",
"scratch_cleared": [],
"total_s": 0.1
"files_changed": [],
"total_s": 753.5
}
@@ -0,0 +1,62 @@
n8n | Initializing n8n process
n8n | n8n ready on ::, port 5678
n8n | n8n Task Broker ready on 127.0.0.1, port 5679
n8n | Failed to start Python task runner in internal mode. because Python 3 is missing from this system. Launching a Python runner in internal mode is intended only for debugging and is not recommended for production. Users are encouraged to deploy in external mode. See: https://docs.n8n.io/hosting/configuration/task-runners/#setting-up-external-mode
n8n |
n8n | There are deprecations related to your n8n setup. Please take the recommended actions to update your configuration:
n8n | - WEBHOOK_URL -> Use N8N_WEBHOOK_URL instead, which sets the base URL for both test and production webhooks.
n8n | - N8N_UNVERIFIED_PACKAGES_ENABLED -> The default for this variable will change to `false` in a future version. Set it to `true` explicitly to keep installing unverified community packages.
n8n | - N8N_RUNNERS_MODE -> Internal task runner mode is deprecated and will be removed in a future version. For isolation and scaling, run the task runner launcher as a separate process, set this variable to `external` and share `N8N_RUNNERS_AUTH_TOKEN` with the launcher. See https://docs.n8n.io/deploy/host-n8n/configure-n8n/set-up-task-runners
n8n | - N8N_RUNNERS_TASK_TIMEOUT -> The default for this variable will be reduced from 300 (5 minutes) to 60 (1 minute) in a future version. Set it explicitly to keep your current task timeout.
n8n | - N8N_COMPRESSION_NODE_MAX_DECOMPRESSED_SIZE_BYTES -> The default for this variable will be reduced from 2 GiB to 256 MiB in a future version. Set it explicitly to keep your current limit.
n8n | - N8N_COMPRESSION_NODE_MAX_ZIP_ENTRIES -> The default for this variable will be reduced from 5000 to 1000 in a future version. Set it explicitly to keep your current limit.
n8n |
n8n | [license SDK] Skipping renewal on init: license cert is not initialized
n8n | [runner:js] (node:26) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.
n8n | (Use `node --trace-warnings ...` to show where the warning was created)
n8n | Instance registered
n8n | Discovered 4 cluster checks
n8n | Registered runner "JS Task Runner" (P5zJhMQKOh4aRPEe4FryG)
n8n | Recorded version change: 2.41.1 -> 2.41.2
n8n | Sandbox: enabled=false provider=n8n-sandbox (from env)
n8n | Version: 2.41.2
n8n | Building workflow dependency index...
n8n | Finished building workflow dependency index. Processed 0 draft workflows, 0 published workflows.
n8n |
n8n | Editor is now accessible via:
n8n | https://auto.enkisfelhom.hu
n8n | 2026-09-24T21:06:33.604Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:06:33.834Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:06:34.249Z [Rudder] error: Response error code: ECONNREFUSED
n8n | 2026-09-24T21:06:35.065Z [Rudder] error: Error: ECONNREFUSED
n8n | connect ECONNREFUSED 0.0.0.0:443
n8n | Error: connect ECONNREFUSED 0.0.0.0:443
n8n | at AxiosError.from (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:1355:24)
n8n | at RedirectableRequest.handleRequestError (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:4026:25)
n8n | at RedirectableRequest.emit (node:events:526:24)
n8n | at ClientRequest.eventHandlers.<computed> (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/follow-redirects@1.16.0_debug@4.4.3_supports-color@8.1.1_/node_modules/follow-redirects/index.js:56:24)
n8n | at ClientRequest.emit (node:events:514:20)
n8n | at emitErrorEvent (node:_http_client:114:11)
n8n | at TLSSocket.socketErrorListener (node:_http_client:768:5)
n8n | at TLSSocket.emit (node:events:526:24)
n8n | at emitErrorNT (node:internal/streams/destroy:170:8)
n8n | at emitErrorCloseNT (node:internal/streams/destroy:129:3)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5427:41)
n8n | at processTicksAndRejections (node:internal/process/task_queues:104:5)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n | at Axios.request (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/axios@1.18.0_patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c4_437e4fafb503be805d1d0ae72f0b0deb/node_modules/axios/dist/node/axios.cjs:5423:14)
n8n |
n8n | connect ECONNREFUSED 0.0.0.0:443
n8n | Error: connect ECONNREFUSED 0.0.0.0:443
n8n | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16)
n8n |
n8n | ValidationError: The 'X-Forwarded-For' header is set but the Express 'trust proxy' setting is false (default). This could indicate a misconfiguration which would prevent express-rate-limit from accurately identifying users. See https://express-rate-limit.github.io/ERR_ERL_UNEXPECTED_X_FORWARDED_FOR/ for more information.
n8n | at Object.xForwardedForHeader (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/express-rate-limit@8.2.2_express@5.1.0_supports-color@8.1.1_/node_modules/express-rate-limit/dist/index.cjs:371:13)
n8n | at Object.wrappedValidations.<computed> [as xForwardedForHeader] (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/express-rate-limit@8.2.2_express@5.1.0_supports-color@8.1.1_/node_modules/express-rate-limit/dist/index.cjs:685:22)
n8n | at Object.keyGenerator (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/express-rate-limit@8.2.2_express@5.1.0_supports-color@8.1.1_/node_modules/express-rate-limit/dist/index.cjs:788:20)
n8n | at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/express-rate-limit@8.2.2_express@5.1.0_supports-color@8.1.1_/node_modules/express-rate-limit/dist/index.cjs:849:32
n8n | at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/express-rate-limit@8.2.2_express@5.1.0_supports-color@8.1.1_/node_modules/express-rate-limit/dist/index.cjs:830:5 {
n8n | code: 'ERR_ERL_UNEXPECTED_X_FORWARDED_FOR',
n8n | help: 'https://express-rate-limit.github.io/ERR_ERL_UNEXPECTED_X_FORWARDED_FOR/'
n8n | }
@@ -0,0 +1,29 @@
23:02:25 ==== n8n: n8nio/n8n:2.41.1 -> n8nio/n8n:2.41.2 (sub=auto, class=SQLite)
23:02:29 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
23:04:24 [1] deployed, controller state=running, pinned={'n8n': 'n8nio/n8n:2.41.1'}
23:04:28 [2] seeding through the app's own front door
23:04:28 n8n: /rest/owner/setup http=200
23:04:28 [3] control C1 — reading the seed back BEFORE the update
23:04:29 n8n: login as the seeded owner http=200 ok=True
23:04:29 [4] backup press SKIPPED for n8n (R-648: whole-box only; the update's backing-up phase backs up n8n alone)
23:04:30 [5] drill commit b18e8810399b: n8n n8nio/n8n:2.41.1 -> n8nio/n8n:2.41.2 (push rc=0)
23:04:34 [5] badge HU: [{'title': 'Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.', 'text': 'Frissítés elérhető — ma'}]
23:04:34 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
23:04:35 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
23:04:35 + 0.0s phase=backing-up label=Biztonsági mentés készül a frissítés előtt… err=None hold=None
23:04:39 + 4.1s phase=pulling label=Új verzió letöltése… err=None hold=None
23:06:20 + 105.6s phase=copying label=Az adatok másolása a frissítés előtt… err=None hold=None
23:06:23 + 108.7s phase=verifying label=Működés ellenőrzése… err=None hold=None
23:06:39 + 124.1s phase=done label=Frissítve err=None hold=None
23:06:39 [7] reading the seed back AFTER the update
23:06:39 n8n: login as the seeded owner http=200 ok=True
23:06:42 [8] pinned = {'n8n': 'n8nio/n8n:2.41.2'}
23:06:42 [8] installed = {'n8n': 'n8nio/n8n:2.41.2'}
23:06:42 [8] compose = ['image: n8nio/n8n:2.41.2']
23:06:42 [8] inspect = ['n8n n8nio/n8n:2.41.2 running=true restarts=0']
23:06:42 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/night-2026-09-25/tools/../E/apps/n8n/box/verdict.json
23:06:45 [X] stop -> 200 {'ok': True, 'message': 'Stack n8n stop completed'}
23:07:16 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'n8n', 'volumes_removed': ['n8n_n8n_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazás nem
23:07:24 [X] after remove: deployed=False leftovers='/opt/docker/stacks/n8n'
23:08:27 [X] R-626 check +60 s after remove: 'clean'
23:08:27 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/night-2026-09-25/tools/../E/apps/n8n/box/verdict.json
@@ -0,0 +1,34 @@
{
"before": {
"pinned_images": {
"n8n": "n8nio/n8n:2.41.1"
},
"installed_images": {
"n8n": "n8nio/n8n:2.41.1"
},
"catalog_images": null,
"live_compose_image_lines": [
"image: n8nio/n8n:2.41.1@sha256:52f147bba97908fe58e616738f2f0485696ac7b5670a1baf169ccf1ff3173de7"
],
"docker_inspect": [
"n8n n8nio/n8n:2.41.1@sha256:52f147bba97908fe58e616738f2f0485696ac7b5670a1baf169ccf1ff3173de7 running=true restarts=0"
]
},
"after": {
"pinned_images": {
"n8n": "n8nio/n8n:2.41.2"
},
"installed_images": {
"n8n": "n8nio/n8n:2.41.2"
},
"catalog_images": {
"n8n": "n8nio/n8n:2.41.2"
},
"live_compose_image_lines": [
"image: n8nio/n8n:2.41.2"
],
"docker_inspect": [
"n8n n8nio/n8n:2.41.2 running=true restarts=0"
]
}
}
@@ -0,0 +1,51 @@
{
"accepted": true,
"http": "202",
"phases": [
{
"t": 0.0,
"phase": "backing-up",
"label": "Biztonsági mentés készül a frissítés előtt…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 4.1,
"phase": "pulling",
"label": "Új verzió letöltése…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 105.6,
"phase": "copying",
"label": "Az adatok másolása a frissítés előtt…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 108.7,
"phase": "verifying",
"label": "Működés ellenőrzése…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 124.1,
"phase": "done",
"label": "Frissítve",
"updating": false,
"error": null,
"hold": null
}
],
"duration_s": 124.1,
"final_phase": "done",
"update_error": null,
"hold_reason": null,
"state": "running"
}
@@ -0,0 +1,45 @@
{
"harness_version": 1,
"app": "n8n",
"venue": "guest 9202 demo-hp-scratch, controller 0.271.0, drill catalog",
"class": "SQLite",
"from": {
"n8n": "n8nio/n8n:2.41.1"
},
"to": {
"n8n": "n8nio/n8n:2.41.2"
},
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"migration_observed": null,
"abort": "not-attempted",
"abort_detail": null,
"duration_s": 124.1,
"measured_at": "2026-09-24T21:02:25.828743+00:00",
"evidence": "apps/n8n/",
"notes": [],
"badge_catchup_seconds": 4.6,
"observables_after": {
"pinned_images": {
"n8n": "n8nio/n8n:2.41.2"
},
"installed_images": {
"n8n": "n8nio/n8n:2.41.2"
},
"catalog_images": {
"n8n": "n8nio/n8n:2.41.2"
},
"live_compose_image_lines": [
"image: n8nio/n8n:2.41.2"
],
"docker_inspect": [
"n8n n8nio/n8n:2.41.2 running=true restarts=0"
]
},
"final_phase": "done",
"hold_reason": null,
"update_error": null,
"r626_at_60s": "clean"
}
@@ -3,3 +3,5 @@
23:02:52 START n8n ['n8n=n8nio/n8n:2.41.2']
23:03:02 DONE n8n rc=0 verdict=inconclusive read_before=False read_after=False abort=not-attempted marks=[] peaks={} detail='FROM deploy failed rc=1: Error response from daemon: network traefik-public not found\n' (10s)
23:03:02 START mealie ['mealie=ghcr.io/mealie-recipes/mealie:v3.28.0']
23:16:25 DONE mealie rc=0 verdict=proven read_before=True read_after=True abort=starts-and-serves marks=[] peaks={'mealie': 0.248} detail='None' (802s)
23:16:25 QUEUE Q1 FINISHED
@@ -0,0 +1,5 @@
23:16:39 START n8n ['n8n=alpine:3.20']
23:32:35 DONE n8n rc=0 verdict=failed read_before=True read_after=False abort=starts-and-serves marks=[] peaks={} detail='None' (956s)
23:32:35 START n8n ['n8n=n8nio/n8n:2.41.2']
23:45:19 DONE n8n rc=0 verdict=proven read_before=True read_after=True abort=starts-and-serves marks=[] peaks={'n8n': 0.559} detail='None' (763s)
23:45:19 QUEUE Q2 FINISHED
@@ -0,0 +1,17 @@
== before: 2026-09-24T23:45:46+02:00
VMID Status Lock Name
9201 running demo-hp
9202 running demo-hp-scratch
9401 running upgrade-harness
local dir active 40453376 22873772 15492488 56.54%
local-lvm lvmthin active 56487936 33350477 23137458 59.04%
nvme-scratch dir active 983379700 82387956 850965132 8.38%
9401 hostname: upgrade-harness
purging CT 9401 from related configurations..
== after
VMID Status Lock Name
9201 running demo-hp
9202 running demo-hp-scratch
local dir active 40453376 22873700 15492560 56.54%
local-lvm lvmthin active 56487936 33350477 23137458 59.04%
nvme-scratch dir active 983379700 74634000 858719088 7.59%
@@ -0,0 +1,14 @@
{
"before": "wishlist containers=1 volumes=2 undo_copies=0\nnavidrome containers=1 volumes=1 undo_copies=0\nromm containers=3 volumes=4 undo_copies=1\nvikunja containers=1 volumes=2 undo_copies=0\nn8n containers=0 volumes=0 undo_copies=0\nmealie containers=0 volumes=0 undo_copies=0\nfelhom-controller filebrowser navidrome paperless-postgres paperless-redis paperless-webserver privatebin romm romm-db romm-redis traefik vikunja wishlist ",
"remove": {
"wishlist": "200",
"navidrome": "200",
"romm": "200",
"vikunja": "200",
"n8n": "not deployed",
"mealie": "not deployed"
},
"after": "wishlist containers=0 volumes=0 undo_copies=0\nnavidrome containers=0 volumes=0 undo_copies=0\nromm containers=0 volumes=0 undo_copies=0\nvikunja containers=0 volumes=0 undo_copies=0\nn8n containers=0 volumes=0 undo_copies=0\nmealie containers=0 volumes=0 undo_copies=0\nfelhom-controller filebrowser paperless-postgres paperless-redis paperless-webserver privatebin traefik ",
"dirs": "/mnt/felhom-drives/scratch_hdd/userdata/calibre-web/\n/mnt/felhom-drives/scratch_hdd/userdata/documents/\n/mnt/felhom-drives/scratch_hdd/userdata/downloads/\n/mnt/felhom-drives/scratch_hdd/userdata/emby/\n/mnt/felhom-drives/scratch_hdd/userdata/immich/\n/mnt/felhom-drives/scratch_hdd/userdata/jellyfin/\n/mnt/felhom-drives/scratch_hdd/userdata/komga/\n/mnt/felhom-drives/scratch_hdd/userdata/media/\n/mnt/felhom-drives/scratch_hdd/userdata/navidrome/\n/mnt/felhom-drives/scratch_hdd/userdata/paperless-ngx/\n/mnt/felhom-drives/scratch_hdd/userdata/plex/\n/mnt/felhom-drives/scratch_hdd/userdata/radarr/\n/mnt/felhom-drives/scratch_hdd/userdata/romm/\n/mnt/felhom-drives/scratch_hdd/userdata/roms/\n/mnt/felhom-drives/scratch_hdd/userdata/sonarr/\npaperless-ngx\n",
"window": "2026/09/24 21:49:16 scheduler.go:67: [DEBUG] [scheduler] daily job db-dump: rescheduled \u2014 recomputing next run\n2026/09/24 21:49:16 scheduler.go:67: [DEBUG] [scheduler] daily job tier2-backup: rescheduled \u2014 recomputing next run\n2026/09/24 21:49:16 scheduler.go:67: [DEBUG] [scheduler] daily job offbox-backup: rescheduled \u2014 recomputing next run\n2026/09/24 21:49:16 backup_handlers.go:64: [INFO] [web] backup window set to 02:30 (legs 02:30/03:30/04:15)\n"
}
@@ -0,0 +1,56 @@
23:46:20 before:
wishlist containers=1 volumes=2 undo_copies=0
navidrome containers=1 volumes=1 undo_copies=0
romm containers=3 volumes=4 undo_copies=1
vikunja containers=1 volumes=2 undo_copies=0
n8n containers=0 volumes=0 undo_copies=0
mealie containers=0 volumes=0 undo_copies=0
felhom-controller filebrowser navidrome paperless-postgres paperless-redis paperless-webserver privatebin romm romm-db romm-redis traefik vikunja wishlist
23:46:20 [X] stop -> 200 {'ok': True, 'message': 'Stack wishlist stop completed'}
23:46:52 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'wishlist', 'volumes_removed': ['wishlist_wishlist_data', 'wishlist_wishlist_uploads'], 'hdd_paths_removed': [], 'hdd_paths_pre
23:47:00 [X] after remove: deployed=False leftovers='/opt/docker/stacks/wishlist'
23:47:01 [X] stop -> 200 {'ok': True, 'message': 'Stack navidrome stop completed'}
23:47:06 [X] remove (with drive data) -> 409 {'ok': False, 'error': 'A(z) /mnt/felhom-drives/scratch_hdd/userdata/navidrome tárhely jelenleg nem elérhető — az alkalmazás nem távolítható el, amíg a meghajtó
23:47:06 [X] refused because the drive path cannot be resolved (R-442, fail-closed and right) — removing the app and KEEPING the drive data instead
23:47:32 [X] remove (keeping drive data) -> 200 {'ok': True, 'data': {'removed': 'navidrome', 'volumes_removed': ['navidrome_navidrome_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'backup_paths
23:47:41 [X] after remove: deployed=False leftovers='/opt/docker/stacks/navidrome'
23:47:49 [X] stop -> 200 {'ok': True, 'message': 'Stack romm stop completed'}
23:47:54 [X] remove (with drive data) -> 409 {'ok': False, 'error': 'A(z) /mnt/felhom-drives/scratch_hdd/userdata/romm tárhely jelenleg nem elérhető — az alkalmazás nem távolítható el, amíg a meghajtó viss
23:47:54 [X] refused because the drive path cannot be resolved (R-442, fail-closed and right) — removing the app and KEEPING the drive data instead
23:48:21 [X] remove (keeping drive data) -> 200 {'ok': True, 'data': {'removed': 'romm', 'volumes_removed': ['romm_romm_config', 'romm_romm_db_data', 'romm_romm_redis_data'], 'hdd_paths_removed': [], 'hdd_pat
23:48:29 [X] after remove: deployed=False leftovers='/opt/docker/stacks/romm'
23:48:30 [X] stop -> 200 {'ok': True, 'message': 'Stack vikunja stop completed'}
23:49:01 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'vikunja', 'volumes_removed': ['vikunja_vikunja_data', 'vikunja_vikunja_db'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [
23:49:10 [X] after remove: deployed=False leftovers='/opt/docker/stacks/vikunja'
23:49:13 after the product's removes:
wishlist containers=0 volumes=0 undo_copies=0
navidrome containers=0 volumes=0 undo_copies=0
romm containers=0 volumes=0 undo_copies=0
vikunja containers=0 volumes=0 undo_copies=0
n8n containers=0 volumes=0 undo_copies=0
mealie containers=0 volumes=0 undo_copies=0
felhom-controller filebrowser paperless-postgres paperless-redis paperless-webserver privatebin traefik
23:49:16 drive dirs left (read by name):
/mnt/felhom-drives/scratch_hdd/userdata/calibre-web/
/mnt/felhom-drives/scratch_hdd/userdata/documents/
/mnt/felhom-drives/scratch_hdd/userdata/downloads/
/mnt/felhom-drives/scratch_hdd/userdata/emby/
/mnt/felhom-drives/scratch_hdd/userdata/immich/
/mnt/felhom-drives/scratch_hdd/userdata/jellyfin/
/mnt/felhom-drives/scratch_hdd/userdata/komga/
/mnt/felhom-drives/scratch_hdd/userdata/media/
/mnt/felhom-drives/scratch_hdd/userdata/navidrome/
/mnt/felhom-drives/scratch_hdd/userdata/paperless-ngx/
/mnt/felhom-drives/scratch_hdd/userdata/plex/
/mnt/felhom-drives/scratch_hdd/userdata/radarr/
/mnt/felhom-drives/scratch_hdd/userdata/romm/
/mnt/felhom-drives/scratch_hdd/userdata/roms/
/mnt/felhom-drives/scratch_hdd/userdata/sonarr/
paperless-ngx
23:49:21 backup window -> 02:30: 303
2026/09/24 21:49:16 scheduler.go:67: [DEBUG] [scheduler] daily job db-dump: rescheduled — recomputing next run
2026/09/24 21:49:16 scheduler.go:67: [DEBUG] [scheduler] daily job tier2-backup: rescheduled — recomputing next run
2026/09/24 21:49:16 scheduler.go:67: [DEBUG] [scheduler] daily job offbox-backup: rescheduled — recomputing next run
2026/09/24 21:49:16 backup_handlers.go:64: [INFO] [web] backup window set to 02:30 (legs 02:30/03:30/04:15)
@@ -0,0 +1,11 @@
git:
branch: main
repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
sync_interval: 15m
token: <redacted>
username: ""
hub:
0
https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
c802509 REPORT: step .felhom.yml files (night 2026-09-24)
@@ -0,0 +1,2 @@
drill=c8025093d23c live=c8025093d23c — 2026-09-24T21:50:07+00:00
has_actions: False private: True
@@ -18,3 +18,9 @@ Capacity: phase0-capacity.txt. demo-felhom pool 3.13 %, root 31 %. demo-hp pool
- register so far: closed R-672 R-673 R-684 R-680 R-678; opened R-685 R-686 R-687; R-676 updated. Before: 341 rows / 685,148 B
- [ ] D floor + real night
- [ ] E / F / G
- [x] C night5 switch off (nothing pressed), night6 on (vikunja re-tested → done). Data read back 8/8.
- [x] D1 floor 0.271.0 (MinAgent 0.131.0) at 20:59Z; D2 both boxes arrived ~15 s; D3 switch ON (absent), W 02:30, leg 04:15; D0: demo-felhom opengist 1.13→1.15 waiting; demo-hp none
- [x] F3 agent 0.134.0 on both boxes (hub reads 0.134.0)
- [x] E bench 9401 created+destroyed (template removed); n8n 2.41.1→2.41.2 and mealie v3.27.0→v3.28.0 PROVEN on bench AND box; control failed (correct). TODO after 02:30: --write-ladder both, commit each, push, CI. Then reset drill again.
- [x] G partial: 9202 apps removed via product, window 02:30, live catalog c802509 (switch key now explicit true), drill reset to live
- [ ] 02:31 publish E; 04:10 start D watch (d_watch.py) on both boxes
@@ -0,0 +1,26 @@
## Part C — the proof on 9202: six simulated nights
Controller v0.271.0 on 9202 only (`C/C0-deploy-9202.txt`), drill catalog (`C/C0-repoint-drill.txt`, health timeout
90 s). Four apps installed through the product at the ladder's first `from`, then the drill put back at the head:
wishlist 1 step behind, navidrome 2, romm 3, vikunja 1 with a failing step (its head probe on port 8999). Marks
set in the drill: navidrome step 1 `needs_person`, wishlist's step `files_may_change`. Data seeded through each
app's own front door and read back after EVERY night (`C/data-readback.txt`: 8 of 8 rounds, 4 of 4 apps, each
fixture with its negative control). The window was moved through the product's own form (`POST /backups/window`)
so the off-site job — and the leg chained to it — fired two minutes later.
| night | what it proved | leg summary (the box's own line) | pages (hu + en) |
|---|---|---|---|
| 1 | the chain on a box with NO off-site target ("the off-site leg does nothing; the update leg runs now"); one step per app; `needs_person` skipped; `files_may_change` taken WITH a whole copy (wishlist); a failing step undone | `done=2 undone=1 held=0 failed=0 skipped=1 in 3m6s [skipped: navidrome=needs_person]` — romm 60.1 s, vikunja undone 105.2 s, wishlist 20.1 s | „Automatikus frissítés 2026-09-24 22:31-kor — sikeres." / "Automatic update at … — done."; vikunja's undone sentence in both |
| 2 | R-680 live: the undone step is NOT pressed again; navidrome's `files_may_change` step taken (its music folder is `excluded`, so its own unit is whole) | `done=2 undone=0 … skipped=1 in 1m10s [skipped: vikunja=failed_before]` | badges current / behind as expected |
| 3 — accident | controller killed (kill -9) the moment navidrome's step ended | the leg had pressed romm IN THE SAME SECOND; the kill landed before romm's `up` → pin and definition put back, romm runs its previous version, page: „A frissítés megszakadt, mert a vezérlő újraindult…" / "The update was interrupted…"; the leg was not resumed (R-686) | all data read back |
| 4 — accident | power cut (`pct stop`/`pct start` of 9202) while romm's step was `verifying` | box up in 13 s; "resumed 1 interrupted update(s)"; romm healthy after 30 s, DONE in 1 m 32 s; no automatic-update line on the page (the leg died — R-686) | all data read back |
| 5 | the switch OFF (`POST /settings/app-update`, page reads unchecked) | `done=0 … stopped=switched_off in 0s` — nothing pressed | — |
| 6 | the switch ON again; the catalog RE-TESTED vikunja's step (probe fixed, new `tested_at`) → the ladder print changed → R-680's record no longer binds | `done=1 … in 10s` — vikunja done | „Automatikus frissítés … 22:58-kor — sikeres." |
**Not run live, and why (R-687):** W+5h reached with steps left (the leg starts at W+105m; needs a 3-hour leg — unit
test `TestLeg_NoStepAtOrAfterW5h`); the off-site leg FAILING (9202 has no off-site tier — unit test
`TestChainUpdateLeg_EveryPath` covers error and panic); a `files_may_change` step WITHOUT a whole copy (every app
given the mark was whole on 9202); the full-system gate's deferral (9202 has no agent, so no quiesce loop).
**Verdict: Part C passed** — every accident that could run on 9202 ended with the app healthy, the data read back,
and a true sentence on its page; the four not-runnable cases are named, unit-proven and in the register.
@@ -1,12 +1,12 @@
#!/usr/bin/env python3
"""Part F, the MACHINE layer on 9202: tonight's apps removed THROUGH THE PRODUCT, leftovers read by name,
"""Night 2026-09-25 Part G (adapted from 09-24), the MACHINE layer on 9202: tonight's apps removed THROUGH THE PRODUCT, leftovers read by name,
the backup window put back to 02:30 through the product's own form. Apps present before tonight stay:
privatebin, paperless-ngx, filebrowser (gokapi was removed in chaos round 5 — R-644's disposition)."""
import json, sys, time
sys.path.insert(0, ".")
import walk as w
w.login()
apps = ["nextcloud", "wishlist", "navidrome", "romm", "vikunja", "n8n", "chaosoom", "chaosoomb"]
apps = ["wishlist", "navidrome", "romm", "vikunja", "n8n", "mealie"]
q = lambda: w.guest("for p in " + " ".join(apps) + "; do echo \"$p containers=$(docker ps -aq --filter label=com.docker.compose.project=$p | wc -l) volumes=$(docker volume ls -q | grep -c ^${p}_) undo_copies=$(docker volume ls -q --filter label=felhom.undo-copy-of=$p | wc -l)\"; done; docker ps --format '{{.Names}}' | sort | tr '\\n' ' '")
before = q(); w.say("before:\n" + before)
res = {}
@@ -25,5 +25,5 @@ r = w.sh(["curl", "-sk", "-o", "/dev/null", "-w", "%{http_code}", "-H", w.HOSTHD
time.sleep(2)
win = w.guest("docker logs --since 1m felhom-controller 2>&1 | grep -E 'rescheduled|window set' | tail -4")
w.say(f"backup window -> 02:30: {r.stdout}\n{win}")
json.dump({"before": before, "remove": res, "after": after, "dirs": dirs, "window": win}, open("../F/10-machine-removes.json", "w"), indent=2)
open("../F/10-machine-removes.log", "w").write("\n".join(w.LOG) + "\n")
json.dump({"before": before, "remove": res, "after": after, "dirs": dirs, "window": win}, open("../G/G2-machine-removes.json", "w"), indent=2)
open("../G/G2-machine-removes.log", "w").write("\n".join(w.LOG) + "\n")