immich's first start: cause measured, fixed in the catalog (R-732 closed); ISO clean-tree gate (R-730 closed)
gates / gates (push) Successful in 27s

- R-732: the first-start geodata import runs up to 9 concurrent 5000-row INSERTs; the database needs
  ~400 MB anon + ~170 MB touched shared_buffers (the image's FIXED 512MB, not host-RAM sizing). 512M fits
  only with swap (bench swap 0: 61-104 kills; 9202 swap 512 MiB: survived by swapping). Controls: swap
  alone, limit alone flip it; shared_buffers 128MB alone does not. Catalog 56c4888: v3.2.4 + 768M,
  proven with swap off on both venues. audits/immich-first-start-2026-09-30/A-cause.md.
- R-730: scripts/iso/build-felhom-iso.sh refuses an uncommitted/untracked/unpushed tree (no bypass),
  records repo-commit from the gate and iso-v<version>; test iso/test/clean-tree.sh, red-proof run
  (status check removed -> 2 of 4 cases fail -> restored).
- R-731 narrowed (gitea 28.0.0 GA; mariadb 13.0 a short-term Rolling line). R-676 note.
- New rows R-733 (bench has no swap, boxes 512 MiB), R-734 (immich .immich markers -> files_may_change).
- STATUS: the golden line corrected (no bake is due; 0.283.1 is the newest release). Register 364 -> 366.

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-30 16:18:17 +02:00
parent 25cb3eb9c1
commit 2866f6a318
65 changed files with 49778 additions and 12 deletions
+9
View File
@@ -16,6 +16,15 @@
> and holds nothing of its own; this file does hold its own content, namely the standing rulings below.
> **2026-09-30 (late afternoon) — immich's first start (R-732 CLOSED).** Cause measured: the first-start geodata import
> runs up to 9 concurrent 5000-row INSERTs; the database needs ~400 MB anon + ~170 MB touched shared_buffers (the image's
> fixed 512MB) — over a 512M limit without swap (bench: 61–104 kills), survivable only by swapping (9202). An update that
> ships a new geodata file re-runs the import. Catalog `56c4888`: immich v3.2.4 + `immich-postgres` 768M (`mem_limit`
> 4480M), proven with swap off on both venues. Also: the golden needs no bake (0.283.1 = newest release; STATUS corrected);
> the ISO build refuses a dirty/unpushed tree (R-730 closed); gitea 28.0.0 is GA, mariadb 13.0 a short-term line (R-731).
> New rows R-733 (bench no swap vs boxes 512 MiB), R-734 (immich's `.immich` markers mark `files_may_change`). Report:
> `REPORT-immich-first-start-2026-09-30.md`.
> **2026-09-30 (day) — operator notes, and the last six PostgreSQL apps.** Notes recorded first (`09` §3): **the brief
> ran by day** — every backup and automatic-update test started by hand (the night chain's debug action; demo-hp's
> window moved for the test and put back), nothing waited for a night; **Tester-2's pre-checks** (the Cloudflare tunnel
+47
View File
@@ -0,0 +1,47 @@
# REPORT — 2026-09-30 (late afternoon): immich's first start, the cause and the fix; STATUS golden line; R-730, R-731
| part | outcome | why / where |
|---|---|---|
| A cause | **done** — up to 9 concurrent geodata INSERTs need ~400 MB anon + ~170 MB touched shared_buffers; 512M fits only with swap. Control pair: swap alone → pass, limit alone → pass, `shared_buffers` alone → still killed | `audits/immich-first-start-2026-09-30/A-cause.md` |
| B fix + proof | **done** — catalog `56c4888`: v3.2.4 + `immich-postgres` 768M, `mem_limit` 4480M. Fresh installs, swap OFF: bench ×2 and 9202, 0 kills, anon ≤ 54 %. Step: bench proven (10-min watch, 0 kills), box done 58.5 s, read back, running limit 768M | `bench/`, `box/` |
| C STATUS + register | **done** — the golden line corrected; R-732 closed | `STATUS.md` |
| D1 R-730 | **done** — the ISO build refuses a dirty/unpushed tree; red-proof run; `iso-v<version>` | `scripts/iso/test/clean-tree.sh` |
| D2 R-731 | **done (narrowed)** — gitea 28.0.0 is GA; mariadb 13.0 is a short-term line; the standing shape-switch control NOT built | `D/D2-release-checks.txt` |
No controller, agent or hub release. No bake (none is due).
## Claims in the brief, checked
- **"the limit is 512M and the header says 256M"** — right (and `mem_limit` 4096M was already 128 MB under the sum of the four limits).
- **"no `shm_size`"** — right; `/dev/shm` 64M, 1.1M used — not involved, so none was added.
- **"the image sizes memory from host RAM"** — **wrong**: `shared_buffers` 512MB and `work_mem` 16MB are FIXED in the image's own
`postgresql.conf`; the rest are PostgreSQL defaults.
- **"bench and box differ by host RAM"** — **wrong**: both on demo-hp. They differ by **swap** (box 512 MiB, bench 0), proven by giving
the bench swap alone.
- **"no bake is due"** — right (the gate: `newest golden baked 0.283.1`, OK).
- **"the fix reaches installed apps only through the v3.2.4 step"** — right, and more: the step itself RE-RUNS the geodata import
(228 294 → 228 571 places), so publishing v3.2.4 without the fix would have killed the database during the update.
## Per-box cost
**+256 MB** on immich's database limit (512M → 768M); the declared `mem_limit` goes 4096M → 4480M (+384, of which 128 corrects an
old undercount). Only boxes with immich.
## What an installed immich gets, and when
An immich on 3.2.2 keeps 512M until its next guarded Update, which moves it to v3.2.4 with 768M in one step (measured on 9202:
running limit 805306368 after). The night leg takes that step only when a fresh whole copy exists (the step carries
`files_may_change` — R-734); otherwise the household's button does. A 3.2.2 immich's own first start is already behind it.
## Rows
Register **364 → 366**. Closed: R-732, R-730. Narrowed: R-731. Notes: R-676. Opened: **R-733** (the bench has no swap, the boxes
do; a customer guest's swap is not recorded), **R-734** (immich's `.immich` markers set `files_may_change`).
## Teardown (three layers)
- **Machine:** 9202 — immich removed through the product (no volume left; its drive folder kept by R-442's refusal, as before),
`controller.yaml` restored (live catalog, read back), swap back at 512 MiB (it was 0 for the one fresh-install proof).
- **Host:** bench LXC 9401 destroyed, template removed, host temp files removed; drill repo reset to the live `main` (`56c4888`),
image lines identical.
- **Hub:** not touched.
+5 -5
View File
@@ -2,7 +2,7 @@
**Ready for the first real tester (Tester-2): yes. You confirmed the tunnel route and the connect mails (2026-09-30).**
**Updated 2026-09-30 (afternoon). Both demo boxes run controller 0.283.1 and host agent 0.138.0. Hub 0.126.0. New installs get golden 0.283.1 with agent 0.138.0. No new release today.**
**Updated 2026-09-30 (late afternoon). Both demo boxes run controller 0.283.1 and host agent 0.138.0. Hub 0.126.0. New installs get golden 0.283.1 with agent 0.138.0. No new release today.**
**Tester-2 — read only, from the hub.**
- The customer record exists and its settings are ready.
@@ -14,15 +14,15 @@
**What I did, and it worked.**
- **The last six database apps are decided.** Three moved to the newer database version (rallly, outline, sparkyfitness). Each was tested on the test bench and on the scratch box, and each one's automatic undo was tested too. Three stay where they are (zipline, adventurelog, immich), because their makers use the same or an older version. **All eleven database apps are now done.**
- **More apps can update themselves at night:** 31 apps (plus nextcloud when a full copy exists), up from 28 this morning. Seven more apps got a newer version today, each tested on the bench and on the scratch box: bookstack, kimai, audiobookshelf, n8n, navidrome, grafana, komga.
- **immich did not move.** On the test bench its database ran out of memory during immich's very first start, twice. On the scratch box it installed fine. I filed it to measure properly; a customer's first install of immich may hit it.
- **immich is fixed and updated (afternoon).** On its first start, immich loads a big list of places into its database, 9 parts at once. That needs about 575 MB. Its database had only 512 MB. A box without swap space killed it again and again; the scratch box survived only because it has swap. Now the database gets 768 MB. Tested with swap off: a fresh install on the bench (two times) and on the scratch box, 0 kills. The held immich update is published with it, because that update loads the list again. **Cost: each immich box reserves 256 MB more** (immich already reserves about 4 GB).
- **The full-system backup now waits for app updates — seen live.** On the HP demo box it waited twice while two apps updated, then started, and it worked. The box's settings are back as before.
- **The HP demo box had no full-system backup since 29 Sept** (its disk was just too full to fit one). Today's test made a fresh one. The problem is the old known one: the box's system disk is small.
- **How current the catalog is:** 25 of 53 apps are a little behind their makers, 19 are a big version behind. The plan for which apps to test next is written.
- **Old register rows fixed.** The "up to date" badge is honest now for every app with a test record.
**Rows.** 1 closed, 2 narrowed, 3 opened. The list went from 361 to 364 rows.
**Rows.** Today in total: 3 closed, 3 narrowed, 5 opened. The list went from 361 to 366 rows.
**What needs you.**
1. **Nothing new.** No app needed a bigger memory limit.
2. **The golden waiver ends on 4 October.** No release happened today, so nothing changes. A weekly bake is due before then.
1. **Nothing to decide.** The immich memory rise follows your earlier rule for raising a limit. Tell me if you want it undone.
2. **No golden bake is due.** The golden built today matches the newest controller. The 4 October date matters only if a new controller comes out before then. The weekly bake stays around 7 October. *(Corrected 2026-09-30: the earlier line said a bake was due before 4 October. That was wrong.)*
3. **D4, the image copies:** unchanged. If you do nothing, nothing changes.
@@ -0,0 +1,62 @@
# Why immich's database was killed on its first start (R-732) — the cause, measured
2026-09-30, by day. Bench: LXC 9401 on demo-hp (6 cores, 10 GiB, **swap 0**), rebuilt for this. Box: scratch guest 9202 on
demo-hp (7 cores, 25 GiB, **swap 512 MiB**). Both disks are raw images on the same `nvme-scratch` store; both run cgroup v2.
Image: `ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0` at the ladder's digest `1a078b23…` (PostgreSQL 16.10).
Sampler: `tools/pgsample.sh` — the database container's `memory.current`, `memory.stat` (anon, file, shmem, file_dirty,
file_writeback) and `memory.events` (oom, oom_kill) every 2 s from the container's birth. Every run is a fresh install.
## The mechanism, in one paragraph
On its very first start (and again whenever an update ships a new geodata file), immich imports ~228 000 places into
`geodata_places` in 5 000-row INSERTs, **up to 9 at once** (`server/src/repositories/map.repository.ts` v3.2.2 L284–321:
`if (futures.length >= 9) await Promise.all(futures)`). Each INSERT is its own database process. Together they need
**~400 MB of their own memory (anon)**, on top of **~170 MB of shared_buffers** the import touches (the image's own
`/etc/postgresql/postgresql.conf` fixes `shared_buffers = 512MB`, `work_mem = 16MB` — `S1-image-conf.txt`, `S1-settings.txt`).
About 575 MB does not fit a 512 MB limit. **With swap** the kernel pushes ~70–110 MB of it out and the import survives at the
limit (that is why 9202 passed this morning and at 15:27). **Without swap** the kernel kills a database process — always
the one running `insert into "geodata_places"` (`S1-postgres.log`) — PostgreSQL restarts every backend, the server's worker
dies, and the cycle repeats (61–104 kills in 7–15 min).
## The claims the brief listed, each tested
| candidate | test | result |
|---|---|---|
| 1. the image sizes memory from the HOST's RAM | `pg_settings.source` + the image's config source | **false** — `shared_buffers` 512MB and `work_mem` 16MB come from the image's fixed `postgresql.conf` (`configuration file /etc/postgresql/postgresql.conf`); the rest are PostgreSQL defaults. The container sees the host's RAM (30.7 GB on the bench, 25.9 GB on the box) but nothing reads it |
| 2. the import needs more than 512M at the image's defaults, on any host | limit changed alone | **true without swap**: 1024M → 0 kills (peak anon 403 MB); 768M → 0 kills twice (412/394 MB) |
| 3a. `shared_buffers` | 512MB → 128MB alone (`command:` flag), limit 512M, no swap | **false** — still 104 kills; the import finished only after 14 min of retries (`S3`) |
| 3b. dirty page cache (slow writeback) | `file_dirty` sampled | **false** — 2–13 MB dirty at the kills (`S4`) |
| 3c. `/dev/shm` | read | 64M, 1.1M used — not involved |
| bench vs box = host RAM | configs | **false** — same host; the difference is **swap** (box 512 MiB, bench 0) |
| swap | the bench given 512 MiB swap alone, limit 512M | **true** — 0 kills, swap.peak 74.7 MB (`S6`); on the box swap.peak 119 MB, pswpout 27 669 pages (`box/S2-box-positive.txt`) |
## The two curves (peaks; the full 2-second series are in the files)
| run | limit | swap | peak current | peak anon | oom_kill | outcome |
|---|---|---|---|---|---|---|
| bench S1 — **positive control**, R-732 repeated | 512M | 0 | 512M | 420M | 84 (in 631 s) | never healthy |
| bench S4 — positive again, with dirty pages | 512M | 0 | 511M | 421M | 24 (in 186 s) | never healthy |
| box S2 — same template, fresh | 512M | 512 MiB | 511M | 280M (+~108 MB swapped) | 0 | import done in 20 s, at 99 % of the limit |
| bench S3 — shared_buffers 128MB only | 512M | 0 | 512M | 434M | 104 | import after ~14 min |
| bench S6 — **swap only** | 512M | 512 MiB | 511M | 320M | 0 | healthy, import 8.2 s |
| bench S5 — **limit only** | 1024M | 0 | 956M | 403M | 0 | healthy, import 8.3 s |
| bench S7, S8 — the fix | 768M | 0 | 765M / 759M | 412M / 394M (54 % / 51 %) | 0 / 0 | healthy, import 7.7 / 7.9 s |
**Control pair:** S1/S4 (fail) vs S6 (only swap changed → pass) and vs S5/S7/S8 (only the limit changed → pass); S3 (only
`shared_buffers` changed → still fails). The cause is named on the variables that flip the result.
## Why settings cannot fix it
The 400 MB is nine concurrent INSERT backends; their memory is the statement's own (5 000 rows × 11 columns), not
`work_mem` or `shared_buffers`. immich exposes no knob for the import's concurrency. Lowering `shared_buffers` saves at most
the ~40–60 MB actually touched and was measured not to be enough (S3). So the limit rises: **768M** is the smallest step with
room (anon 51–54 %, under the 80 % `memory_tight` line; shmem ~170 MB and file cache fill the rest, reclaimable).
## Not measured, stated
- Whether a real customer guest has swap: both demo guests have 512 MiB; the golden's guest config is not recorded here.
The fix does not depend on it (proven with swap off on both venues).
- The PostgreSQL 14 line upstream runs uses the SAME `postgresql.ssd.conf` (base-images copies one file for every major) — the
same 512MB `shared_buffers`; its import behaviour would be the same. Note only.
- The chaos-night restarts of 2026-09-17 (R-676) fit this mechanism (a DB connection dropped during the first-start import on a
6 GB guest) — consistent, not re-measured.
@@ -0,0 +1,13 @@
# R-731 release checks, read 2026-09-30T14:14:02Z
## gitea — GitHub releases API (go-gitea/gitea)
v28.0.0 2026-09-29T23:25:53Z prerelease= False draft= False
v1.27.3 2026-08-29T17:42:17Z prerelease= False draft= False
v1.27.2 2026-08-13T19:26:43Z prerelease= False draft= False
v1.27.1 2026-07-27T20:20:33Z prerelease= False draft= False
## mariadb — downloads.mariadb.org/rest-api/mariadb/
13.2 Preview None EOL None
13.1 RC Rolling EOL None
13.0 Stable Rolling EOL None
12.3 Stable Long Term Support EOL 2029-06-12
11.8 Stable Long Term Support EOL 2030-02-13
11.4 Stable Long Term Support EOL 2029-05-29
@@ -0,0 +1,19 @@
+ pct list
VMID Status Lock Name
9201 running demo-hp
9202 running demo-hp-scratch
+ free -g
+ head -2
total used free shared buff/cache available
Mem: 29 5 15 0 9 23
+ pveam download local debian-13-standard_13.6-1_amd64.tar.zst
+ tail -1
download of 'http://download.proxmox.com/images/system/debian-13-standard_13.6-1_amd64.tar.zst' to '/var/lib/vz/template/cache/debian-13-standard_13.6-1_amd64.tar.zst' finished
+ pct create 9401 local:vztmpl/debian-13-standard_13.6-1_amd64.tar.zst --hostname upgrade-harness --cores 6 --memory 10240 --swap 0 --rootfs nvme-scratch:40 --net0 name=eth0,bridge=vmbr0,ip=dhcp --unprivileged 1 --features nesting=1,keyctl=1 --onboot 0
+ tail -1
done: SHA256:dOEmAqz35KJm23lwZTCi3a7GVA9gq6OKTAxSEL/Wt+c root@upgrade-harness
+ pct start 9401
+ sleep 15
+ pct exec 9401 -- bash -c 'apt-get update -qq >/dev/null 2>&1; DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker.io docker-compose python3 python3-yaml curl >/dev/null 2>&1; docker --version; docker network create traefik-public >/dev/null && echo net'
Docker version 26.1.5+dfsg1, build a72d7cd
net
@@ -0,0 +1,9 @@
## 2026-09-30T14:15:56Z bench destroy
purging CT 9401 from related configurations..
destroyed-9401
template-removed
VMID Status Lock Name
9201 running demo-hp
9202 running demo-hp-scratch
local-lvm lvmthin active 56487936 34802217 21685718 61.61%
nvme-scratch dir active 983379700 77130316 856222772 7.84%
@@ -0,0 +1,322 @@
# pgsample immich-postgres from 2026-09-30T13:17:45Z; host MemTotal 10485760 kB; cgroup cgroup2fs
# id e1e540a27860c8f5dd33b053d335b096a8e2db89c12d62324f88e38b574f3b34 cgroup /sys/fs/cgroup/system.slice/docker-e1e540a27860c8f5dd33b053d335b096a8e2db89c12d62324f88e38b574f3b34.scope limit 536870912
t_s current anon file shmem oom oom_kill server
0 3215360 491520 24576 0 0 0
none
2 119107584 5832704 106291200 32735232 0 0
none
4 111214592 5832704 98689024 32735232 0 0
none
6 111177728 5832704 97890304 33316864 0 0
none
8 111177728 5832704 97890304 33316864 0 0
none
10 111177728 5832704 97890304 33316864 0 0
none
12 105328640 5832704 92618752 33316864 0 0 starting
14 107274240 7573504 92020736 34021376 0 0 starting
16 103116800 5832704 90038272 34021376 0 0 starting
18 117932032 15101952 92884992 37416960 0 0 starting
20 137502720 21831680 104554496 40419328 0 0 starting
22 154345472 32436224 110034944 46239744 0 0 starting
24 473325568 236765184 231542784 67678208 0 0 starting
26 214573056 6000640 200032256 63455232 3 2 starting
29 214310912 6000640 200032256 63455232 3 2 starting
31 218251264 6008832 203915264 64483328 3 2 starting
33 218251264 6008832 203915264 64483328 3 2 starting
35 228184064 23150592 194793472 66883584 3 2 starting
37 531025920 287080448 226496512 66887680 3 2 starting
39 186499072 5865472 172396544 58511360 7 3 starting
41 186314752 5865472 172396544 58511360 7 3 starting
43 191492096 5873664 177655808 59842560 7 3 starting
45 191426560 5873664 177655808 59842560 7 3 starting
47 212660224 23023616 178905088 63512576 7 3 starting
49 497283072 279199744 205029376 63512576 7 3 starting
51 180240384 5861376 166395904 57516032 12 6 starting
53 179851264 5861376 166395904 57516032 12 6 starting
55 185192448 5869568 171655168 58871808 12 6 starting
57 190201856 5869568 176345088 58871808 12 6 starting
59 207855616 23048192 174051328 62631936 12 6 starting
61 501784576 287268864 195653632 62631936 12 6 starting
63 185020416 5881856 171065344 57978880 23 8 starting
65 184692736 5881856 171065344 57978880 23 8 starting
67 195010560 5890048 181153792 59392000 23 8 starting
69 195002368 5890048 181153792 59392000 23 8 starting
71 207507456 17326080 178065408 63258624 23 8 starting
73 464404480 267186176 173649920 63258624 23 8 starting
75 377233408 246554624 116244480 73646080 23 8 starting
77 289038336 5885952 273444864 69672960 31 10 starting
79 288788480 5885952 273444864 69672960 31 10 starting
81 294637568 5894144 278966272 71102464 31 10 starting
84 294367232 5894144 278966272 71102464 31 10 starting
86 299020288 23068672 264458240 75042816 31 10 starting
88 524103680 286814208 216080384 75042816 31 10 starting
90 176783360 5898240 162590720 56492032 41 12 starting
92 176320512 5898240 162590720 56492032 41 12 starting
94 182280192 5906432 167948288 57913344 41 12 starting
96 181739520 5906432 167948288 57913344 41 12 starting
98 204922880 23105536 171352064 61902848 41 12 starting
100 494018560 281944064 194666496 61902848 41 12 starting
102 180654080 5906432 166813696 57229312 58 14 starting
104 180649984 5906432 166813696 57229312 58 14 starting
106 186540032 5914624 172425216 58667008 58 14 starting
108 191393792 5914624 177115136 58667008 58 14 starting
110 213381120 14569472 188018688 62078976 58 14 starting
112 354762752 173764608 166998016 62722048 58 14 starting
114 182472704 4767744 102920192 43593728 64 16 starting
116 182054912 5890048 168177664 57667584 64 16 starting
118 192937984 5898240 178626560 59113472 64 16 starting
120 192937984 5898240 178626560 59113472 64 16 starting
123 219598848 16089088 189825024 62550016 64 16 starting
125 386707456 184651776 168919040 63184896 64 16 starting
127 132374528 4128768 60301312 31596544 65 17 unhealthy
129 190492672 5902336 176160768 57847808 65 17 starting
131 198447104 7671808 181895168 59310080 65 17 starting
133 196055040 5910528 181895168 59310080 65 17 starting
135 217853952 14331904 192815104 62771200 65 17 starting
137 259833856 65601536 170385408 63406080 65 17 starting
139 42033152 4116480 32612352 31596544 77 19 unhealthy
141 183939072 5894144 169508864 57593856 77 19 starting
143 191860736 7663616 175140864 59056128 77 19 starting
145 189181952 5902336 175140864 59056128 77 19 starting
147 216076288 14319616 191188992 62558208 77 19 starting
149 454201344 230301696 169275392 63193088 77 19 starting
151 181968896 4792320 118599680 45543424 92 20 starting
154 180940800 5910528 167092224 57171968 92 20 starting
156 186802176 5918720 172908544 58658816 92 20 starting
158 192049152 5918720 177598464 58658816 92 20 starting
160 220434432 18010112 188702720 62193664 92 20 starting
162 369049600 174338048 167043072 62828544 92 20 starting
164 42831872 4145152 32452608 31596544 104 24 starting
166 171393024 5931008 157667328 55635968 104 24 starting
168 184430592 7700480 167948288 57122816 104 24 starting
170 182022144 5939200 167948288 57122816 104 24 starting
172 203960320 14356480 179552256 60674048 104 24 starting
174 237363200 50610176 159449088 61325312 104 24 starting
176 536743936 441098240 81620992 66371584 104 24 starting
178 266117120 4542464 249417728 69611520 113 26 starting
180 265596928 5935104 250626048 70672384 113 26 starting
182 271429632 5943296 256323584 72167424 113 26 starting
184 271355904 5943296 256323584 72167424 113 26 starting
186 272269312 18489344 268021760 75808768 113 26 starting
188 507191296 227676160 240738304 76337152 113 26 starting
190 177909760 4808704 143376384 53374976 130 29 starting
192 176676864 5959680 162803712 56516608 130 29 starting
195 182767616 5967872 168796160 58044416 130 29 starting
197 182693888 5967872 168796160 58044416 130 29 starting
199 204333056 19042304 172408832 62230528 130 29 starting
201 466833408 284786688 174219264 62230528 130 29 starting
203 187469824 5922816 173137920 58093568 133 32 starting
205 187256832 5922816 173137920 58093568 133 32 starting
207 193077248 5931008 179138560 59621376 133 32 starting
209 197955584 5931008 183828480 59621376 133 32 starting
211 224067584 24047616 180973568 63873024 133 32 starting
213 484573184 286384128 185135104 63873024 133 32 starting
215 183103488 4804608 124751872 49426432 139 34 starting
217 183033856 5947392 168931328 57417728 139 34 starting
219 194293760 5955584 179732480 58937344 139 34 starting
221 193855488 5955584 179732480 58937344 139 34 starting
223 216444928 14389248 191078400 62545920 139 34 starting
225 313360384 123523072 168812544 63197184 139 34 starting
228 79253504 4153344 43925504 31596544 145 35 unhealthy
230 182599680 5951488 168538112 57544704 145 35 starting
232 188592128 7712768 171827200 58486784 145 35 starting
234 186228736 5951488 171827200 58486784 145 35 starting
236 208527360 14389248 183693312 62128128 145 35 starting
238 438554624 277266432 167211008 62763008 145 35 starting
240 186761216 4403200 170799104 57270272 146 36 starting
242 186032128 5959680 172019712 58331136 146 36 starting
244 192454656 5967872 178053120 59858944 146 36 starting
246 192126976 5967872 178053120 59858944 146 36 starting
248 215093248 15110144 189747200 63524864 146 36 starting
250 352235520 152899584 171630592 64159744 146 36 starting
252 109412352 4145152 33067008 31596544 172 38 unhealthy
254 170614784 5947392 156823552 56434688 172 38 starting
256 177782784 6688768 163090432 57970688 172 38 starting
258 182423552 6606848 167780352 57970688 172 38 starting
260 204050432 14417920 179400704 61661184 172 38 starting
262 374792192 183660544 158691328 62296064 172 38 starting
264 185532416 4829184 158879744 54284288 176 39 starting
267 184672256 5943296 170692608 58060800 176 39 starting
269 196259840 5951488 181567488 59604992 176 39 starting
271 196055040 5951488 181567488 59604992 176 39 starting
273 223002624 16187392 193232896 63295488 176 39 starting
275 443092992 241029120 170983424 63938560 176 39 starting
277 366731264 246329344 107061248 73744384 176 39 starting
279 255459328 5951488 240431104 70033408 234 42 starting
281 255094784 5951488 240431104 70033408 234 42 starting
283 261820416 5959680 246796288 71585792 234 42 starting
285 261820416 5959680 246796288 71585792 234 42 starting
287 266141696 23052288 231964672 75886592 234 42 starting
289 517005312 288870400 205578240 75886592 234 42 starting
291 320442368 211275776 110665728 75886592 234 42 starting
293 87793664 4182016 37105664 31604736 245 45 unhealthy
295 327700480 5943296 311955456 81981440 245 45 starting
297 335994880 7716864 318300160 83533824 245 45 starting
299 338821120 5951488 322990080 83533824 245 45 starting
301 364457984 16150528 334356480 87207936 245 45 starting
303 322383872 23515136 288047104 88367104 245 45 starting
305 536838144 335060992 185765888 88367104 245 45 starting
307 181088256 5951488 167079936 57409536 251 47 starting
310 194428928 7729152 177750016 58945536 251 47 starting
312 191827968 5959680 177750016 58945536 251 47 starting
314 218443776 24903680 187011072 61628416 251 47 starting
316 207925248 30224384 167510016 63287296 251 47 starting
318 536870912 320884736 199749632 63287296 251 47 starting
320 188243968 5971968 173940736 57954304 254 48 starting
322 193650688 7741440 177164288 58904576 254 48 starting
324 191590400 5971968 177164288 58904576 254 48 starting
326 206467072 13991936 180592640 59994112 254 48 starting
328 209731584 23494656 175505408 63287296 254 48 starting
330 536870912 304349184 216416256 63287296 254 48 starting
332 187904000 5935104 173699072 58216448 265 49 starting
334 196276224 7708672 180039680 59777024 265 49 starting
336 194142208 5943296 180039680 59777024 265 49 starting
338 199577600 7692288 180039680 59777024 265 49 starting
340 215535616 23162880 181833728 64184320 265 49 starting
342 500817920 257331200 235302912 64184320 265 49 starting
344 176070656 5939200 162197504 55992320 268 50 starting
346 175992832 5939200 162197504 55992320 268 50 starting
348 182849536 5947392 168423424 57552896 268 50 starting
350 187248640 5947392 173113344 57552896 268 50 starting
352 206090240 23203840 172466176 61968384 268 50 starting
354 518705152 292638720 211976192 61968384 268 50 starting
356 464191488 318185472 109277184 74502144 268 50 starting
358 265887744 5935104 250224640 71266304 269 51 starting
360 278990848 7712768 261287936 72835072 269 51 starting
362 276480000 5943296 261287936 72835072 269 51 starting
365 276480000 5943296 261287936 72835072 269 51 starting
367 280580096 23195648 246116352 77250560 269 51 starting
369 498987008 249696256 247214080 77250560 269 51 starting
371 181739520 5963776 167710720 56504320 276 53 starting
373 185380864 7385088 168120320 56659968 276 53 starting
375 185147392 5963776 170876928 57470976 276 53 starting
377 184872960 5963776 170876928 57470976 276 53 starting
379 205205504 23228416 171233280 61919232 276 53 starting
381 504598528 247394304 237842432 61919232 276 53 starting
383 185712640 5955584 171737088 57872384 278 55 starting
385 194756608 8048640 176697344 59080704 278 55 starting
387 191676416 5963776 177676288 59416576 278 55 starting
389 191676416 5963776 177676288 59416576 278 55 starting
391 214388736 23171072 180690944 63856640 278 55 starting
393 503660544 265809920 235175936 63856640 278 55 starting
395 180256768 5959680 166223872 56942592 280 56 starting
397 180133888 5959680 166223872 56942592 280 56 starting
399 186769408 5967872 172199936 58486784 280 56 starting
401 191066112 5967872 176889856 58486784 280 56 starting
403 210391040 23097344 176025600 62959616 280 56 starting
405 501489664 292114432 174395392 62959616 280 56 starting
407 184762368 4825088 85336064 39727104 284 57 starting
410 183566336 5980160 169644032 58019840 284 57 starting
412 196755456 7753728 180486144 59588608 284 57 starting
414 194732032 5988352 180486144 59588608 284 57 starting
416 217149440 14336000 192638976 63410176 284 57 starting
418 422354944 222543872 173666304 64077824 284 57 starting
420 175210496 4386816 153919488 54980608 286 59 starting
422 182358016 5988352 168378368 56684544 286 59 starting
424 185692160 5988352 171630592 57667584 286 59 starting
426 185614336 5988352 171630592 57667584 286 59 starting
428 209063936 15151104 183865344 61562880 286 59 starting
430 452751360 238264320 168374272 62197760 286 59 starting
432 185860096 4239360 48844800 31604736 289 60 starting
435 184999936 5984256 170917888 57651200 289 60 starting
437 191201280 5992448 177094656 59219968 289 60 starting
439 191078400 5992448 177094656 59219968 289 60 starting
441 207237120 17686528 175628288 63766528 289 60 starting
443 451076096 275914752 183308288 63766528 289 60 starting
445 184459264 4448256 164397056 56868864 290 61 starting
447 183644160 5988352 169615360 57929728 290 61 starting
449 190181376 5996544 175792128 59498496 290 61 starting
451 195219456 5996544 180482048 59498496 290 61 starting
453 219627520 14561280 193880064 63410176 290 61 starting
455 262578176 72310784 171114496 64569344 290 61 starting
457 67604480 4177920 57376768 31596544 295 63 unhealthy
459 185614336 5992448 171266048 58159104 295 63 starting
461 198860800 7778304 182198272 59711488 295 63 starting
463 196501504 6004736 182198272 59711488 295 63 starting
466 218853376 14446592 194691072 63614976 295 63 starting
468 214704128 23470080 180510720 64266240 295 63 starting
470 74964992 74600448 65622016 65363968 310 66 starting
472 186245120 6012928 171827200 57077760 310 66 starting
474 191627264 7790592 174919680 58044416 310 66 starting
476 189239296 6012928 174919680 58044416 310 66 starting
478 217829376 20942848 185372672 61399040 310 66 starting
480 243048448 55382016 175079424 62623744 310 66 starting
482 536838144 308441088 212922368 62623744 310 66 starting
484 176582656 6004736 162746368 56057856 313 67 starting
486 186040320 7786496 169164800 57610240 313 67 starting
488 183119872 6012928 169164800 57610240 313 67 starting
490 188354560 7380992 169164800 57610240 313 67 starting
492 208285696 23396352 173965312 62205952 313 67 starting
494 527429632 247697408 239722496 62205952 313 67 starting
496 175144960 5980160 161095680 55881728 326 69 starting
498 183517184 7761920 167309312 57442304 326 69 starting
500 181403648 5988352 167309312 57442304 326 69 starting
502 186167296 5988352 171999232 57442304 326 69 starting
504 206139392 23285760 172072960 62046208 326 69 starting
506 446439424 192569344 238174208 62046208 326 69 starting
508 184696832 6004736 170528768 57434112 329 70 starting
510 184446976 6004736 170528768 57434112 329 70 starting
512 195723264 6012928 181547008 59011072 329 70 starting
514 195723264 6012928 181547008 59011072 329 70 starting
516 223330304 16211968 194363392 63012864 329 70 starting
518 393367552 170921984 171540480 63647744 329 70 starting
521 90075136 4177920 53133312 31596544 330 71 unhealthy
523 196501504 5988352 182177792 58941440 330 71 starting
525 203231232 7766016 185446400 59932672 330 71 starting
527 199778304 5988352 185446400 59932672 330 71 starting
529 199778304 5988352 185446400 59932672 330 71 starting
531 216752128 23285760 183304192 64569344 330 71 starting
533 500969472 273903616 209649664 64569344 330 71 starting
535 170057728 4403200 157134848 55185408 335 72 starting
537 178536448 6004736 164687872 56303616 335 72 starting
539 187428864 7782400 171032576 57880576 335 72 starting
541 184942592 6012928 171032576 57880576 335 72 starting
543 189947904 6012928 175837184 57880576 335 72 starting
545 220536832 18595840 188641280 61874176 335 72 starting
547 208302080 22331392 175714304 62517248 335 72 starting
549 500842496 255619072 242864128 62517248 335 72 starting
551 177278976 5967872 162975744 56025088 336 73 starting
553 184680448 5976064 170622976 56602624 336 73 starting
555 190226432 7749632 173969408 57585664 336 73 starting
557 188268544 5976064 173969408 57585664 336 73 starting
559 210751488 14434304 186327040 61579264 336 73 starting
561 261615616 77082624 165208064 62222336 336 73 starting
563 510148608 401756160 84029440 67948544 336 73 starting
565 392097792 243445760 134205440 85659648 336 73 starting
567 328851456 5996544 313225216 81645568 339 75 starting
570 328663040 5996544 313225216 81645568 339 75 starting
572 335114240 6004736 319533056 83214336 339 75 starting
574 339918848 6004736 324222976 83214336 339 75 starting
576 333778944 23273472 298999808 87859200 339 75 starting
578 536649728 287068160 229781504 87859200 339 75 starting
580 183246848 5980160 169127936 57344000 353 77 starting
582 183205888 5980160 169127936 57344000 353 77 starting
584 194641920 5988352 180187136 58929152 353 77 starting
586 194387968 5988352 180187136 58929152 353 77 starting
588 217620480 14442496 193032192 62963712 353 77 starting
590 355385344 147320832 170553344 63598592 353 77 starting
592 104177664 4849664 61378560 37285888 364 79 unhealthy
594 193683456 6004736 179433472 58220544 364 79 starting
596 198950912 7778304 182595584 59219968 364 79 starting
598 196923392 6004736 182595584 59219968 364 79 starting
600 220594176 14467072 195420160 63262720 364 79 starting
602 233062400 38420480 172318720 63905792 364 79 starting
604 536870912 335249408 185303040 63905792 364 79 starting
606 258314240 4882432 153026560 54546432 375 81 starting
609 257626112 6012928 242827264 69926912 375 81 starting
611 264376320 6021120 249171968 71503872 375 81 starting
613 264036352 6021120 249171968 71503872 375 81 starting
615 294416384 15179776 266686464 75554816 375 81 starting
617 536719360 243470336 236417024 76197888 375 81 starting
619 186408960 4857856 118898688 45346816 377 82 starting
621 186036224 5988352 171843584 57864192 377 82 starting
623 194330624 5996544 178212864 59441152 377 82 starting
625 197357568 5996544 182902784 59441152 377 82 starting
627 229171200 21045248 195964928 63516672 377 82 starting
629 377171968 183291904 173682688 64151552 377 82 starting
631 115924992 4177920 50331648 31596544 385 84 unhealthy
634
none
# cgroup gone at 634 s
# end 2026-09-30T13:29:25Z
@@ -0,0 +1,17 @@
MemTotal: 30714460 kB
shm 64M 1.1M 63M 2% /dev/shm
include_if_exists '/var/lib/postgresql/data/postgresql.conf'
shared_preload_libraries = 'vchord.so, vectors.so'
search_path = '"$user", public, vectors'
max_wal_size = 5GB
shared_buffers = 512MB
wal_compression = on
work_mem = 16MB
autovacuum_vacuum_scale_factor = 0.1
autovacuum_analyze_scale_factor = 0.05
autovacuum_vacuum_cost_limit = 1000
effective_io_concurrency = 200
random_page_cost = 1.2
include_if_exists '/var/lib/postgresql/data/postgresql.override.conf'
@@ -0,0 +1,523 @@
Using SSD storage
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are enabled.
fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Europe/Budapest
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
Success. You can now start the database server using:
pg_ctl -D /var/lib/postgresql/data -l logfile start
initdb: warning: enabling "trust" authentication for local connections
initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
2026-09-30 13:18:52.495 GMT [48] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2026-09-30 13:18:52.496 GMT [48] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
waiting for server to start....2026-09-30 13:18:52.528 GMT [53] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2026-09-30 13:18:52.529 GMT [53] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2026-09-30 15:18:52.575 CEST [53] LOG: starting PostgreSQL 16.10 (Debian 16.10-1.pgdg12+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit
2026-09-30 15:18:52.579 CEST [53] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2026-09-30 15:18:52.591 CEST [56] LOG: database system was shut down at 2026-09-30 15:18:52 CEST
2026-09-30 15:18:52.602 CEST [53] LOG: database system is ready to accept connections
done
server started
CREATE DATABASE
/usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
2026-09-30 15:18:52.865 CEST [53] LOG: received fast shutdown request
waiting for server to shut down....2026-09-30 15:18:52.869 CEST [53] LOG: aborting any active transactions
2026-09-30 15:18:52.875 CEST [53] LOG: background worker "logical replication launcher" (PID 62) exited with exit code 1
2026-09-30 15:18:52.875 CEST [54] LOG: shutting down
2026-09-30 15:18:52.878 CEST [54] LOG: checkpoint starting: shutdown immediate
2026-09-30 15:18:52.975 CEST [54] LOG: checkpoint complete: wrote 922 buffers (1.4%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.037 s, sync=0.048 s, total=0.101 s; sync files=301, longest=0.013 s, average=0.001 s; distance=1672 kB, estimate=1672 kB; lsn=0/18CED10, redo lsn=0/18CED10
2026-09-30 15:18:52.996 CEST [53] LOG: database system is shut down
done
server stopped
PostgreSQL init process complete; ready for start up.
2026-09-30 13:18:53.090 GMT [1] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2026-09-30 13:18:53.091 GMT [1] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2026-09-30 15:18:53.137 CEST [1] LOG: starting PostgreSQL 16.10 (Debian 16.10-1.pgdg12+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit
2026-09-30 15:18:53.137 CEST [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
2026-09-30 15:18:53.137 CEST [1] LOG: listening on IPv6 address "::", port 5432
2026-09-30 15:18:53.144 CEST [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2026-09-30 15:18:53.158 CEST [72] LOG: database system was shut down at 2026-09-30 15:18:52 CEST
2026-09-30 15:18:53.171 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:19:05.362 CEST [87] ERROR: relation "system_metadata" does not exist at character 21
2026-09-30 15:19:05.362 CEST [87] STATEMENT: select "value" from "system_metadata" where "key" = $1
2026-09-30 15:19:16.514 CEST [1] LOG: server process (PID 99) was terminated by signal 9: Killed
2026-09-30 15:19:16.514 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:19:16.514 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:19:16.538 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:19:16.588 CEST [122] LOG: database system was interrupted; last known up at 2026-09-30 15:18:53 CEST
2026-09-30 15:19:16.590 CEST [125] FATAL: the database system is in recovery mode
2026-09-30 15:19:16.815 CEST [122] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:19:16.820 CEST [122] LOG: redo starts at 0/18CED88
2026-09-30 15:19:16.889 CEST [133] FATAL: the database system is not yet accepting connections
2026-09-30 15:19:16.889 CEST [133] DETAIL: Consistent recovery state has not been yet reached.
2026-09-30 15:19:17.070 CEST [122] LOG: invalid magic number 0000 in WAL segment 000000010000000000000003, LSN 0/3942000, offset 9707520
2026-09-30 15:19:17.070 CEST [122] LOG: redo done at 0/3941F50 system usage: CPU: user: 0.12 s, system: 0.10 s, elapsed: 0.24 s
2026-09-30 15:19:17.082 CEST [123] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:19:17.305 CEST [123] LOG: checkpoint complete: wrote 3749 buffers (5.7%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.055 s, sync=0.145 s, total=0.226 s; sync files=540, longest=0.084 s, average=0.001 s; distance=33228 kB, estimate=33228 kB; lsn=0/3942048, redo lsn=0/3942048
2026-09-30 15:19:17.321 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:19:28.973 CEST [1] LOG: server process (PID 142) was terminated by signal 9: Killed
2026-09-30 15:19:28.973 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:19:28.973 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:19:28.995 CEST [166] FATAL: the database system is in recovery mode
2026-09-30 15:19:28.998 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:19:29.046 CEST [167] LOG: database system was interrupted; last known up at 2026-09-30 15:19:17 CEST
2026-09-30 15:19:29.278 CEST [167] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:19:29.283 CEST [167] LOG: redo starts at 0/39420C0
2026-09-30 15:19:29.442 CEST [167] LOG: unexpected pageaddr 0/2686000 in WAL segment 000000010000000000000005, LSN 0/5686000, offset 6840320
2026-09-30 15:19:29.442 CEST [167] LOG: redo done at 0/5685F00 system usage: CPU: user: 0.10 s, system: 0.04 s, elapsed: 0.15 s
2026-09-30 15:19:29.457 CEST [168] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:19:29.604 CEST [168] LOG: checkpoint complete: wrote 3143 buffers (4.8%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.049 s, sync=0.081 s, total=0.150 s; sync files=61, longest=0.073 s, average=0.002 s; distance=29968 kB, estimate=29968 kB; lsn=0/5686048, redo lsn=0/5686048
2026-09-30 15:19:29.616 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:19:41.463 CEST [1] LOG: server process (PID 178) was terminated by signal 9: Killed
2026-09-30 15:19:41.463 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:19:41.463 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:19:41.484 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:19:41.535 CEST [202] LOG: database system was interrupted; last known up at 2026-09-30 15:19:29 CEST
2026-09-30 15:19:41.775 CEST [202] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:19:41.783 CEST [202] LOG: redo starts at 0/56860C0
2026-09-30 15:19:41.932 CEST [202] LOG: unexpected pageaddr 0/4292000 in WAL segment 000000010000000000000007, LSN 0/7292000, offset 2695168
2026-09-30 15:19:41.932 CEST [202] LOG: redo done at 0/7291FA0 system usage: CPU: user: 0.09 s, system: 0.04 s, elapsed: 0.14 s
2026-09-30 15:19:41.948 CEST [203] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:19:42.091 CEST [203] LOG: checkpoint complete: wrote 3022 buffers (4.6%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.038 s, sync=0.078 s, total=0.148 s; sync files=57, longest=0.071 s, average=0.002 s; distance=28719 kB, estimate=28719 kB; lsn=0/7292018, redo lsn=0/7292018
2026-09-30 15:19:42.104 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:19:53.819 CEST [1] LOG: server process (PID 235) was terminated by signal 9: Killed
2026-09-30 15:19:53.819 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:19:53.819 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:19:53.857 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:19:53.912 CEST [239] LOG: database system was interrupted; last known up at 2026-09-30 15:19:42 CEST
2026-09-30 15:19:54.153 CEST [239] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:19:54.158 CEST [239] LOG: redo starts at 0/7292090
2026-09-30 15:19:54.330 CEST [239] LOG: unexpected pageaddr 0/5F74000 in WAL segment 000000010000000000000008, LSN 0/8F74000, offset 16203776
2026-09-30 15:19:54.330 CEST [239] LOG: redo done at 0/8F73F30 system usage: CPU: user: 0.09 s, system: 0.06 s, elapsed: 0.17 s
2026-09-30 15:19:54.347 CEST [240] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:19:54.484 CEST [240] LOG: checkpoint complete: wrote 3079 buffers (4.7%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.041 s, sync=0.083 s, total=0.140 s; sync files=52, longest=0.075 s, average=0.002 s; distance=29576 kB, estimate=29576 kB; lsn=0/8F74048, redo lsn=0/8F74048
2026-09-30 15:19:54.495 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:20:07.721 CEST [1] LOG: server process (PID 260) was terminated by signal 9: Killed
2026-09-30 15:20:07.721 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:20:07.721 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:20:07.755 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:20:07.809 CEST [282] LOG: database system was interrupted; last known up at 2026-09-30 15:19:54 CEST
2026-09-30 15:20:08.037 CEST [282] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:20:08.042 CEST [282] LOG: redo starts at 0/8F740C0
2026-09-30 15:20:08.314 CEST [282] LOG: invalid magic number 0000 in WAL segment 00000001000000000000000B, LSN 0/BC68000, offset 13008896
2026-09-30 15:20:08.314 CEST [282] LOG: redo done at 0/BC67F60 system usage: CPU: user: 0.15 s, system: 0.09 s, elapsed: 0.27 s
2026-09-30 15:20:08.398 CEST [283] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:20:08.567 CEST [283] LOG: checkpoint complete: wrote 4503 buffers (6.9%); 0 WAL file(s) added, 0 removed, 3 recycled; write=0.059 s, sync=0.089 s, total=0.173 s; sync files=56, longest=0.075 s, average=0.002 s; distance=46032 kB, estimate=46032 kB; lsn=0/BC68048, redo lsn=0/BC68048
2026-09-30 15:20:08.582 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:20:19.972 CEST [1] LOG: server process (PID 294) was terminated by signal 9: Killed
2026-09-30 15:20:19.972 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:20:19.972 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:20:19.996 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:20:20.046 CEST [317] LOG: database system was interrupted; last known up at 2026-09-30 15:20:08 CEST
2026-09-30 15:20:20.047 CEST [318] FATAL: the database system is in recovery mode
2026-09-30 15:20:20.272 CEST [317] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:20:20.277 CEST [317] LOG: redo starts at 0/BC680C0
2026-09-30 15:20:20.441 CEST [317] LOG: unexpected pageaddr 0/875A000 in WAL segment 00000001000000000000000D, LSN 0/D75A000, offset 7708672
2026-09-30 15:20:20.441 CEST [317] LOG: redo done at 0/D759F10 system usage: CPU: user: 0.08 s, system: 0.06 s, elapsed: 0.16 s
2026-09-30 15:20:20.457 CEST [319] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:20:20.598 CEST [319] LOG: checkpoint complete: wrote 2896 buffers (4.4%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.045 s, sync=0.077 s, total=0.148 s; sync files=52, longest=0.070 s, average=0.002 s; distance=27592 kB, estimate=27592 kB; lsn=0/D75A048, redo lsn=0/D75A048
2026-09-30 15:20:20.610 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:20:32.348 CEST [1] LOG: server process (PID 338) was terminated by signal 9: Killed
2026-09-30 15:20:32.348 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:20:32.349 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:20:32.370 CEST [353] FATAL: the database system is in recovery mode
2026-09-30 15:20:32.374 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:20:32.426 CEST [354] LOG: database system was interrupted; last known up at 2026-09-30 15:20:20 CEST
2026-09-30 15:20:32.645 CEST [354] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:20:32.649 CEST [354] LOG: redo starts at 0/D75A0C0
2026-09-30 15:20:32.824 CEST [354] LOG: unexpected pageaddr 0/A360000 in WAL segment 00000001000000000000000F, LSN 0/F360000, offset 3538944
2026-09-30 15:20:32.824 CEST [354] LOG: redo done at 0/F35FF78 system usage: CPU: user: 0.09 s, system: 0.05 s, elapsed: 0.17 s
2026-09-30 15:20:32.847 CEST [355] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:20:32.995 CEST [355] LOG: checkpoint complete: wrote 2987 buffers (4.6%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.049 s, sync=0.078 s, total=0.152 s; sync files=52, longest=0.071 s, average=0.002 s; distance=28695 kB, estimate=28695 kB; lsn=0/F360018, redo lsn=0/F360018
2026-09-30 15:20:33.006 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:20:45.218 CEST [1] LOG: server process (PID 382) was terminated by signal 9: Killed
2026-09-30 15:20:45.218 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:20:45.218 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:20:45.241 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:20:45.293 CEST [389] LOG: database system was interrupted; last known up at 2026-09-30 15:20:32 CEST
2026-09-30 15:20:45.521 CEST [389] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:20:45.532 CEST [389] LOG: redo starts at 0/F360090
2026-09-30 15:20:45.698 CEST [389] LOG: unexpected pageaddr 0/B000000 in WAL segment 000000010000000000000011, LSN 0/11000000, offset 0
2026-09-30 15:20:45.698 CEST [389] LOG: redo done at 0/10FFEF88 system usage: CPU: user: 0.08 s, system: 0.07 s, elapsed: 0.16 s
2026-09-30 15:20:45.713 CEST [390] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:20:45.859 CEST [390] LOG: checkpoint complete: wrote 3041 buffers (4.6%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.041 s, sync=0.084 s, total=0.149 s; sync files=54, longest=0.075 s, average=0.002 s; distance=29312 kB, estimate=29312 kB; lsn=0/11000058, redo lsn=0/11000058
2026-09-30 15:20:45.870 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:20:57.801 CEST [1] LOG: server process (PID 408) was terminated by signal 9: Killed
2026-09-30 15:20:57.801 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:20:57.801 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:20:57.826 CEST [424] FATAL: the database system is in recovery mode
2026-09-30 15:20:57.828 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:20:57.881 CEST [425] LOG: database system was interrupted; last known up at 2026-09-30 15:20:45 CEST
2026-09-30 15:20:58.101 CEST [425] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:20:58.106 CEST [425] LOG: redo starts at 0/110000D0
2026-09-30 15:20:58.231 CEST [435] FATAL: the database system is not yet accepting connections
2026-09-30 15:20:58.231 CEST [435] DETAIL: Consistent recovery state has not been yet reached.
2026-09-30 15:20:58.280 CEST [425] LOG: unexpected pageaddr 0/ED10000 in WAL segment 000000010000000000000012, LSN 0/12D10000, offset 13697024
2026-09-30 15:20:58.280 CEST [425] LOG: redo done at 0/12D0FEE8 system usage: CPU: user: 0.11 s, system: 0.05 s, elapsed: 0.17 s
2026-09-30 15:20:58.299 CEST [426] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:20:58.440 CEST [426] LOG: checkpoint complete: wrote 3062 buffers (4.7%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.038 s, sync=0.082 s, total=0.145 s; sync files=50, longest=0.075 s, average=0.002 s; distance=29759 kB, estimate=29759 kB; lsn=0/12D10048, redo lsn=0/12D10048
2026-09-30 15:20:58.453 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:21:10.249 CEST [1] LOG: server process (PID 444) was terminated by signal 9: Killed
2026-09-30 15:21:10.249 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:21:10.249 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:21:10.284 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:21:10.339 CEST [469] LOG: database system was interrupted; last known up at 2026-09-30 15:20:58 CEST
2026-09-30 15:21:10.625 CEST [469] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:21:10.630 CEST [469] LOG: redo starts at 0/12D100C0
2026-09-30 15:21:10.820 CEST [469] LOG: unexpected pageaddr 0/F9C0000 in WAL segment 000000010000000000000014, LSN 0/149C0000, offset 10223616
2026-09-30 15:21:10.820 CEST [469] LOG: redo done at 0/149BFEA8 system usage: CPU: user: 0.10 s, system: 0.06 s, elapsed: 0.18 s
2026-09-30 15:21:10.834 CEST [470] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:21:10.972 CEST [470] LOG: checkpoint complete: wrote 3031 buffers (4.6%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.037 s, sync=0.084 s, total=0.141 s; sync files=51, longest=0.071 s, average=0.002 s; distance=29376 kB, estimate=29376 kB; lsn=0/149C0048, redo lsn=0/149C0048
2026-09-30 15:21:10.988 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:21:22.374 CEST [1] LOG: server process (PID 480) was terminated by signal 9: Killed
2026-09-30 15:21:22.374 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:21:22.374 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:21:22.402 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:21:22.460 CEST [504] LOG: database system was interrupted; last known up at 2026-09-30 15:21:10 CEST
2026-09-30 15:21:22.690 CEST [504] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:21:22.695 CEST [504] LOG: redo starts at 0/149C00C0
2026-09-30 15:21:22.855 CEST [504] LOG: unexpected pageaddr 0/115E6000 in WAL segment 000000010000000000000016, LSN 0/165E6000, offset 6184960
2026-09-30 15:21:22.855 CEST [504] LOG: redo done at 0/165E5F30 system usage: CPU: user: 0.09 s, system: 0.06 s, elapsed: 0.16 s
2026-09-30 15:21:22.867 CEST [505] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:21:23.008 CEST [505] LOG: checkpoint complete: wrote 2980 buffers (4.5%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.037 s, sync=0.083 s, total=0.145 s; sync files=50, longest=0.075 s, average=0.002 s; distance=28823 kB, estimate=28823 kB; lsn=0/165E6018, redo lsn=0/165E6018
2026-09-30 15:21:23.020 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:21:35.130 CEST [1] LOG: server process (PID 532) was terminated by signal 9: Killed
2026-09-30 15:21:35.130 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:21:35.130 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:21:35.159 CEST [539] FATAL: the database system is in recovery mode
2026-09-30 15:21:35.161 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:21:35.210 CEST [540] LOG: database system was interrupted; last known up at 2026-09-30 15:21:23 CEST
2026-09-30 15:21:35.434 CEST [540] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:21:35.438 CEST [540] LOG: redo starts at 0/165E6090
2026-09-30 15:21:35.584 CEST [540] LOG: unexpected pageaddr 0/13000000 in WAL segment 000000010000000000000018, LSN 0/18000000, offset 0
2026-09-30 15:21:35.584 CEST [540] LOG: redo done at 0/17FFFF68 system usage: CPU: user: 0.08 s, system: 0.04 s, elapsed: 0.14 s
2026-09-30 15:21:35.607 CEST [541] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:21:35.760 CEST [541] LOG: checkpoint complete: wrote 2793 buffers (4.3%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.048 s, sync=0.078 s, total=0.159 s; sync files=50, longest=0.072 s, average=0.002 s; distance=26728 kB, estimate=26728 kB; lsn=0/18000058, redo lsn=0/18000058
2026-09-30 15:21:35.771 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:21:48.713 CEST [1] LOG: server process (PID 570) was terminated by signal 9: Killed
2026-09-30 15:21:48.713 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:21:48.713 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:21:48.736 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:21:48.790 CEST [581] LOG: database system was interrupted; last known up at 2026-09-30 15:21:35 CEST
2026-09-30 15:21:48.845 CEST [585] FATAL: the database system is in recovery mode
2026-09-30 15:21:49.002 CEST [581] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:21:49.007 CEST [581] LOG: redo starts at 0/180000D0
2026-09-30 15:21:49.268 CEST [581] LOG: unexpected pageaddr 0/14E84000 in WAL segment 00000001000000000000001A, LSN 0/1AE84000, offset 15220736
2026-09-30 15:21:49.268 CEST [581] LOG: redo done at 0/1AE83F10 system usage: CPU: user: 0.16 s, system: 0.07 s, elapsed: 0.26 s
2026-09-30 15:21:49.280 CEST [582] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:21:49.475 CEST [582] LOG: checkpoint complete: wrote 4624 buffers (7.1%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.052 s, sync=0.125 s, total=0.199 s; sync files=55, longest=0.118 s, average=0.003 s; distance=47631 kB, estimate=47631 kB; lsn=0/1AE84048, redo lsn=0/1AE84048
2026-09-30 15:21:49.489 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:22:01.302 CEST [1] LOG: server process (PID 595) was terminated by signal 9: Killed
2026-09-30 15:22:01.302 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:22:01.302 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:22:01.323 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:22:01.373 CEST [618] LOG: database system was interrupted; last known up at 2026-09-30 15:21:49 CEST
2026-09-30 15:22:01.599 CEST [618] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:22:01.603 CEST [618] LOG: redo starts at 0/1AE840C0
2026-09-30 15:22:01.766 CEST [618] LOG: unexpected pageaddr 0/169B0000 in WAL segment 00000001000000000000001C, LSN 0/1C9B0000, offset 10158080
2026-09-30 15:22:01.766 CEST [618] LOG: redo done at 0/1C9AFF48 system usage: CPU: user: 0.08 s, system: 0.05 s, elapsed: 0.16 s
2026-09-30 15:22:01.785 CEST [619] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:22:01.924 CEST [619] LOG: checkpoint complete: wrote 2901 buffers (4.4%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.038 s, sync=0.082 s, total=0.146 s; sync files=53, longest=0.074 s, average=0.002 s; distance=27824 kB, estimate=27824 kB; lsn=0/1C9B0048, redo lsn=0/1C9B0048
2026-09-30 15:22:01.935 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:22:13.449 CEST [1] LOG: server process (PID 638) was terminated by signal 9: Killed
2026-09-30 15:22:13.449 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:22:13.449 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:22:13.469 CEST [653] FATAL: the database system is in recovery mode
2026-09-30 15:22:13.488 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:22:13.533 CEST [654] LOG: database system was interrupted; last known up at 2026-09-30 15:22:01 CEST
2026-09-30 15:22:13.768 CEST [654] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:22:13.773 CEST [654] LOG: redo starts at 0/1C9B00C0
2026-09-30 15:22:13.930 CEST [654] LOG: unexpected pageaddr 0/1875C000 in WAL segment 00000001000000000000001E, LSN 0/1E75C000, offset 7716864
2026-09-30 15:22:13.930 CEST [654] LOG: redo done at 0/1E75BF88 system usage: CPU: user: 0.10 s, system: 0.04 s, elapsed: 0.15 s
2026-09-30 15:22:13.944 CEST [655] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:22:14.090 CEST [655] LOG: checkpoint complete: wrote 3092 buffers (4.7%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.036 s, sync=0.092 s, total=0.149 s; sync files=48, longest=0.077 s, average=0.002 s; distance=30384 kB, estimate=30384 kB; lsn=0/1E75C048, redo lsn=0/1E75C048
2026-09-30 15:22:14.104 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:22:25.923 CEST [1] LOG: server process (PID 673) was terminated by signal 9: Killed
2026-09-30 15:22:25.923 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:22:25.923 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:22:25.952 CEST [689] FATAL: the database system is in recovery mode
2026-09-30 15:22:25.956 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:22:26.011 CEST [690] LOG: database system was interrupted; last known up at 2026-09-30 15:22:14 CEST
2026-09-30 15:22:26.238 CEST [690] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:22:26.242 CEST [690] LOG: redo starts at 0/1E75C0C0
2026-09-30 15:22:26.413 CEST [690] LOG: unexpected pageaddr 0/1B3F6000 in WAL segment 000000010000000000000020, LSN 0/203F6000, offset 4153344
2026-09-30 15:22:26.413 CEST [690] LOG: redo done at 0/203F5F10 system usage: CPU: user: 0.09 s, system: 0.06 s, elapsed: 0.17 s
2026-09-30 15:22:26.432 CEST [691] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:22:26.577 CEST [691] LOG: checkpoint complete: wrote 3010 buffers (4.6%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.034 s, sync=0.086 s, total=0.149 s; sync files=49, longest=0.069 s, average=0.002 s; distance=29288 kB, estimate=29288 kB; lsn=0/203F6048, redo lsn=0/203F6048
2026-09-30 15:22:26.590 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:22:38.765 CEST [1] LOG: server process (PID 709) was terminated by signal 9: Killed
2026-09-30 15:22:38.765 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:22:38.765 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:22:38.792 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:22:38.835 CEST [725] LOG: database system was interrupted; last known up at 2026-09-30 15:22:26 CEST
2026-09-30 15:22:39.082 CEST [725] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:22:39.086 CEST [725] LOG: redo starts at 0/203F60C0
2026-09-30 15:22:39.234 CEST [725] LOG: unexpected pageaddr 0/1C000000 in WAL segment 000000010000000000000022, LSN 0/22000000, offset 0
2026-09-30 15:22:39.234 CEST [725] LOG: redo done at 0/21FFFEE8 system usage: CPU: user: 0.08 s, system: 0.05 s, elapsed: 0.14 s
2026-09-30 15:22:39.250 CEST [726] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:22:39.397 CEST [726] LOG: checkpoint complete: wrote 2953 buffers (4.5%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.036 s, sync=0.089 s, total=0.150 s; sync files=47, longest=0.081 s, average=0.002 s; distance=28712 kB, estimate=28712 kB; lsn=0/22000058, redo lsn=0/22000058
2026-09-30 15:22:39.409 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:22:50.742 CEST [1] LOG: server process (PID 744) was terminated by signal 9: Killed
2026-09-30 15:22:50.742 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:22:50.742 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:22:50.756 CEST [768] FATAL: the database system is in recovery mode
2026-09-30 15:22:50.782 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:22:50.832 CEST [769] LOG: database system was interrupted; last known up at 2026-09-30 15:22:39 CEST
2026-09-30 15:22:51.076 CEST [769] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:22:51.081 CEST [769] LOG: redo starts at 0/220000D0
2026-09-30 15:22:51.266 CEST [769] LOG: unexpected pageaddr 0/1FDF4000 in WAL segment 000000010000000000000023, LSN 0/23DF4000, offset 14630912
2026-09-30 15:22:51.266 CEST [769] LOG: redo done at 0/23DF3F18 system usage: CPU: user: 0.09 s, system: 0.07 s, elapsed: 0.18 s
2026-09-30 15:22:51.278 CEST [770] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:22:51.421 CEST [770] LOG: checkpoint complete: wrote 3122 buffers (4.8%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.037 s, sync=0.091 s, total=0.146 s; sync files=47, longest=0.083 s, average=0.002 s; distance=30671 kB, estimate=30671 kB; lsn=0/23DF4048, redo lsn=0/23DF4048
2026-09-30 15:22:51.436 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:23:03.377 CEST [1] LOG: server process (PID 780) was terminated by signal 9: Killed
2026-09-30 15:23:03.377 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:23:03.379 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:23:03.406 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:23:03.463 CEST [803] LOG: database system was interrupted; last known up at 2026-09-30 15:22:51 CEST
2026-09-30 15:23:03.693 CEST [803] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:23:03.697 CEST [803] LOG: redo starts at 0/23DF40C0
2026-09-30 15:23:03.845 CEST [803] LOG: unexpected pageaddr 0/2093C000 in WAL segment 000000010000000000000025, LSN 0/2593C000, offset 9682944
2026-09-30 15:23:03.845 CEST [803] LOG: redo done at 0/2593BF30 system usage: CPU: user: 0.09 s, system: 0.04 s, elapsed: 0.14 s
2026-09-30 15:23:03.868 CEST [804] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:23:04.011 CEST [804] LOG: checkpoint complete: wrote 2891 buffers (4.4%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.042 s, sync=0.081 s, total=0.147 s; sync files=47, longest=0.072 s, average=0.002 s; distance=27936 kB, estimate=27936 kB; lsn=0/2593C048, redo lsn=0/2593C048
2026-09-30 15:23:04.023 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:23:15.479 CEST [1] LOG: server process (PID 823) was terminated by signal 9: Killed
2026-09-30 15:23:15.479 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:23:15.479 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:23:15.490 CEST [839] FATAL: the database system is in recovery mode
2026-09-30 15:23:15.530 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:23:15.587 CEST [840] LOG: database system was interrupted; last known up at 2026-09-30 15:23:04 CEST
2026-09-30 15:23:15.828 CEST [840] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:23:15.847 CEST [840] LOG: redo starts at 0/2593C0C0
2026-09-30 15:23:16.009 CEST [840] LOG: unexpected pageaddr 0/226D2000 in WAL segment 000000010000000000000027, LSN 0/276D2000, offset 7151616
2026-09-30 15:23:16.009 CEST [840] LOG: redo done at 0/276D1F80 system usage: CPU: user: 0.11 s, system: 0.04 s, elapsed: 0.16 s
2026-09-30 15:23:16.024 CEST [841] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:23:16.168 CEST [841] LOG: checkpoint complete: wrote 3088 buffers (4.7%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.037 s, sync=0.092 s, total=0.147 s; sync files=47, longest=0.084 s, average=0.002 s; distance=30296 kB, estimate=30296 kB; lsn=0/276D2048, redo lsn=0/276D2048
2026-09-30 15:23:16.180 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:23:29.336 CEST [1] LOG: server process (PID 869) was terminated by signal 9: Killed
2026-09-30 15:23:29.336 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:23:29.336 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:23:29.359 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:23:29.410 CEST [875] LOG: database system was interrupted; last known up at 2026-09-30 15:23:16 CEST
2026-09-30 15:23:29.631 CEST [875] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:23:29.636 CEST [875] LOG: redo starts at 0/276D20C0
2026-09-30 15:23:29.885 CEST [875] LOG: unexpected pageaddr 0/264A8000 in WAL segment 00000001000000000000002A, LSN 0/2A4A8000, offset 4882432
2026-09-30 15:23:29.885 CEST [875] LOG: redo done at 0/2A4A7F78 system usage: CPU: user: 0.15 s, system: 0.07 s, elapsed: 0.24 s
2026-09-30 15:23:29.901 CEST [876] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:23:30.107 CEST [876] LOG: checkpoint complete: wrote 4545 buffers (6.9%); 0 WAL file(s) added, 0 removed, 3 recycled; write=0.051 s, sync=0.129 s, total=0.209 s; sync files=53, longest=0.120 s, average=0.003 s; distance=46936 kB, estimate=46936 kB; lsn=0/2A4A8048, redo lsn=0/2A4A8048
2026-09-30 15:23:30.112 CEST [885] FATAL: the database system is not yet accepting connections
2026-09-30 15:23:30.112 CEST [885] DETAIL: Consistent recovery state has not been yet reached.
2026-09-30 15:23:30.121 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:23:44.368 CEST [1] LOG: server process (PID 907) was terminated by signal 9: Killed
2026-09-30 15:23:44.368 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:23:44.369 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:23:44.392 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:23:44.448 CEST [918] LOG: database system was interrupted; last known up at 2026-09-30 15:23:30 CEST
2026-09-30 15:23:44.673 CEST [918] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:23:44.678 CEST [918] LOG: redo starts at 0/2A4A80C0
2026-09-30 15:23:45.056 CEST [918] LOG: unexpected pageaddr 0/29348000 in WAL segment 00000001000000000000002E, LSN 0/2E348000, offset 3440640
2026-09-30 15:23:45.056 CEST [918] LOG: redo done at 0/2E347F18 system usage: CPU: user: 0.24 s, system: 0.12 s, elapsed: 0.37 s
2026-09-30 15:23:45.067 CEST [919] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:23:45.332 CEST [919] LOG: checkpoint complete: wrote 6000 buffers (9.2%); 0 WAL file(s) added, 0 removed, 4 recycled; write=0.068 s, sync=0.171 s, total=0.267 s; sync files=53, longest=0.163 s, average=0.004 s; distance=64128 kB, estimate=64128 kB; lsn=0/2E348048, redo lsn=0/2E348048
2026-09-30 15:23:45.347 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:23:57.120 CEST [1] LOG: server process (PID 937) was terminated by signal 9: Killed
2026-09-30 15:23:57.120 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:23:57.120 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:23:57.143 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:23:57.200 CEST [954] LOG: database system was interrupted; last known up at 2026-09-30 15:23:45 CEST
2026-09-30 15:23:57.417 CEST [954] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:23:57.421 CEST [954] LOG: redo starts at 0/2E3480C0
2026-09-30 15:23:57.587 CEST [954] LOG: unexpected pageaddr 0/2A000000 in WAL segment 000000010000000000000030, LSN 0/30000000, offset 0
2026-09-30 15:23:57.588 CEST [954] LOG: redo done at 0/2FFFF680 system usage: CPU: user: 0.10 s, system: 0.05 s, elapsed: 0.16 s
2026-09-30 15:23:57.613 CEST [955] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:23:57.776 CEST [955] LOG: checkpoint complete: wrote 3009 buffers (4.6%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.043 s, sync=0.102 s, total=0.166 s; sync files=51, longest=0.088 s, average=0.002 s; distance=29408 kB, estimate=29408 kB; lsn=0/30000058, redo lsn=0/30000058
2026-09-30 15:23:57.789 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:24:09.353 CEST [1] LOG: server process (PID 973) was terminated by signal 9: Killed
2026-09-30 15:24:09.353 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:24:09.353 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:24:09.384 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:24:09.437 CEST [989] LOG: database system was interrupted; last known up at 2026-09-30 15:23:57 CEST
2026-09-30 15:24:09.659 CEST [989] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:24:09.664 CEST [989] LOG: redo starts at 0/300000D0
2026-09-30 15:24:09.838 CEST [989] LOG: unexpected pageaddr 0/2CC94000 in WAL segment 000000010000000000000031, LSN 0/31C94000, offset 13189120
2026-09-30 15:24:09.838 CEST [989] LOG: redo done at 0/31C93F70 system usage: CPU: user: 0.11 s, system: 0.05 s, elapsed: 0.17 s
2026-09-30 15:24:09.853 CEST [990] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:24:10.006 CEST [990] LOG: checkpoint complete: wrote 3003 buffers (4.6%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.040 s, sync=0.094 s, total=0.157 s; sync files=50, longest=0.086 s, average=0.002 s; distance=29263 kB, estimate=29263 kB; lsn=0/31C94048, redo lsn=0/31C94048
2026-09-30 15:24:10.018 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:24:21.627 CEST [1] LOG: server process (PID 1010) was terminated by signal 9: Killed
2026-09-30 15:24:21.627 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:24:21.627 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:24:21.645 CEST [1034] FATAL: the database system is in recovery mode
2026-09-30 15:24:21.683 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:24:21.744 CEST [1035] LOG: database system was interrupted; last known up at 2026-09-30 15:24:10 CEST
2026-09-30 15:24:21.978 CEST [1035] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:24:21.982 CEST [1035] LOG: redo starts at 0/31C940C0
2026-09-30 15:24:22.154 CEST [1035] LOG: unexpected pageaddr 0/2FA6E000 in WAL segment 000000010000000000000033, LSN 0/33A6E000, offset 10936320
2026-09-30 15:24:22.154 CEST [1035] LOG: redo done at 0/33A6C500 system usage: CPU: user: 0.10 s, system: 0.05 s, elapsed: 0.17 s
2026-09-30 15:24:22.169 CEST [1036] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:24:22.326 CEST [1036] LOG: checkpoint complete: wrote 3106 buffers (4.7%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.039 s, sync=0.098 s, total=0.160 s; sync files=44, longest=0.090 s, average=0.003 s; distance=30568 kB, estimate=30568 kB; lsn=0/33A6E048, redo lsn=0/33A6E048
2026-09-30 15:24:22.340 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:24:34.353 CEST [1] LOG: server process (PID 1046) was terminated by signal 9: Killed
2026-09-30 15:24:34.353 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:24:34.353 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:24:34.378 CEST [1070] FATAL: the database system is in recovery mode
2026-09-30 15:24:34.381 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:24:34.436 CEST [1071] LOG: database system was interrupted; last known up at 2026-09-30 15:24:22 CEST
2026-09-30 15:24:34.674 CEST [1071] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:24:34.682 CEST [1071] LOG: redo starts at 0/33A6E0C0
2026-09-30 15:24:34.841 CEST [1071] LOG: unexpected pageaddr 0/30540000 in WAL segment 000000010000000000000035, LSN 0/35540000, offset 5505024
2026-09-30 15:24:34.841 CEST [1071] LOG: redo done at 0/3553E2C0 system usage: CPU: user: 0.09 s, system: 0.05 s, elapsed: 0.15 s
2026-09-30 15:24:34.862 CEST [1072] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:24:35.032 CEST [1072] LOG: checkpoint complete: wrote 2836 buffers (4.3%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.048 s, sync=0.095 s, total=0.174 s; sync files=45, longest=0.087 s, average=0.003 s; distance=27464 kB, estimate=27464 kB; lsn=0/35540048, redo lsn=0/35540048
2026-09-30 15:24:35.046 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:24:48.128 CEST [1] LOG: server process (PID 1090) was terminated by signal 9: Killed
2026-09-30 15:24:48.128 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:24:48.128 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:24:48.159 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:24:48.212 CEST [1106] LOG: database system was interrupted; last known up at 2026-09-30 15:24:35 CEST
2026-09-30 15:24:48.449 CEST [1106] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:24:48.453 CEST [1106] LOG: redo starts at 0/355400C0
2026-09-30 15:24:48.727 CEST [1106] LOG: unexpected pageaddr 0/3451A000 in WAL segment 000000010000000000000038, LSN 0/3851A000, offset 5349376
2026-09-30 15:24:48.727 CEST [1106] LOG: redo done at 0/38519F20 system usage: CPU: user: 0.15 s, system: 0.09 s, elapsed: 0.27 s
2026-09-30 15:24:48.739 CEST [1107] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:24:48.935 CEST [1107] LOG: checkpoint complete: wrote 4696 buffers (7.2%); 0 WAL file(s) added, 0 removed, 3 recycled; write=0.055 s, sync=0.117 s, total=0.200 s; sync files=49, longest=0.104 s, average=0.003 s; distance=49000 kB, estimate=49000 kB; lsn=0/3851A048, redo lsn=0/3851A048
2026-09-30 15:24:48.949 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:25:00.560 CEST [1] LOG: server process (PID 1125) was terminated by signal 9: Killed
2026-09-30 15:25:00.560 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:25:00.560 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:25:00.576 CEST [1141] FATAL: the database system is in recovery mode
2026-09-30 15:25:00.587 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:25:00.636 CEST [1142] LOG: database system was interrupted; last known up at 2026-09-30 15:24:48 CEST
2026-09-30 15:25:00.889 CEST [1142] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:25:00.894 CEST [1142] LOG: redo starts at 0/3851A0C0
2026-09-30 15:25:01.050 CEST [1142] LOG: unexpected pageaddr 0/33FFC000 in WAL segment 000000010000000000000039, LSN 0/39FFC000, offset 16760832
2026-09-30 15:25:01.050 CEST [1142] LOG: redo done at 0/39FFBF40 system usage: CPU: user: 0.08 s, system: 0.05 s, elapsed: 0.15 s
2026-09-30 15:25:01.065 CEST [1143] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:25:01.214 CEST [1143] LOG: checkpoint complete: wrote 2829 buffers (4.3%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.038 s, sync=0.092 s, total=0.155 s; sync files=42, longest=0.085 s, average=0.003 s; distance=27528 kB, estimate=27528 kB; lsn=0/39FFC048, redo lsn=0/39FFC048
2026-09-30 15:25:01.225 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:25:12.934 CEST [1] LOG: server process (PID 1161) was terminated by signal 9: Killed
2026-09-30 15:25:12.934 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:25:12.934 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:25:12.951 CEST [1185] FATAL: the database system is in recovery mode
2026-09-30 15:25:12.989 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:25:13.043 CEST [1186] LOG: database system was interrupted; last known up at 2026-09-30 15:25:01 CEST
2026-09-30 15:25:13.271 CEST [1186] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:25:13.276 CEST [1186] LOG: redo starts at 0/39FFC0C0
2026-09-30 15:25:13.434 CEST [1186] LOG: unexpected pageaddr 0/36D72000 in WAL segment 00000001000000000000003B, LSN 0/3BD72000, offset 14098432
2026-09-30 15:25:13.434 CEST [1186] LOG: redo done at 0/3BD71F18 system usage: CPU: user: 0.09 s, system: 0.04 s, elapsed: 0.15 s
2026-09-30 15:25:13.446 CEST [1187] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:25:13.604 CEST [1187] LOG: checkpoint complete: wrote 3064 buffers (4.7%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.042 s, sync=0.098 s, total=0.162 s; sync files=44, longest=0.091 s, average=0.003 s; distance=30168 kB, estimate=30168 kB; lsn=0/3BD72048, redo lsn=0/3BD72048
2026-09-30 15:25:13.617 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:25:25.186 CEST [1] LOG: server process (PID 1197) was terminated by signal 9: Killed
2026-09-30 15:25:25.186 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:25:25.186 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:25:25.204 CEST [1222] FATAL: the database system is in recovery mode
2026-09-30 15:25:25.242 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:25:25.301 CEST [1223] LOG: database system was interrupted; last known up at 2026-09-30 15:25:13 CEST
2026-09-30 15:25:25.533 CEST [1223] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:25:25.538 CEST [1223] LOG: redo starts at 0/3BD720C0
2026-09-30 15:25:25.691 CEST [1223] LOG: unexpected pageaddr 0/389B0000 in WAL segment 00000001000000000000003D, LSN 0/3D9B0000, offset 10158080
2026-09-30 15:25:25.691 CEST [1223] LOG: redo done at 0/3D9AFF38 system usage: CPU: user: 0.08 s, system: 0.06 s, elapsed: 0.15 s
2026-09-30 15:25:25.706 CEST [1224] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:25:25.856 CEST [1224] LOG: checkpoint complete: wrote 2951 buffers (4.5%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.035 s, sync=0.100 s, total=0.153 s; sync files=43, longest=0.090 s, average=0.003 s; distance=28920 kB, estimate=28920 kB; lsn=0/3D9B0048, redo lsn=0/3D9B0048
2026-09-30 15:25:25.869 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:25:38.408 CEST [1] LOG: server process (PID 1242) was terminated by signal 9: Killed
2026-09-30 15:25:38.408 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:25:38.408 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:25:38.460 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:25:38.508 CEST [1259] LOG: database system was interrupted; last known up at 2026-09-30 15:25:25 CEST
2026-09-30 15:25:38.753 CEST [1259] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:25:38.758 CEST [1259] LOG: redo starts at 0/3D9B00C0
2026-09-30 15:25:38.934 CEST [1259] LOG: unexpected pageaddr 0/3A746000 in WAL segment 00000001000000000000003F, LSN 0/3F746000, offset 7626752
2026-09-30 15:25:38.934 CEST [1259] LOG: redo done at 0/3F744640 system usage: CPU: user: 0.10 s, system: 0.06 s, elapsed: 0.17 s
2026-09-30 15:25:38.946 CEST [1260] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:25:39.099 CEST [1260] LOG: checkpoint complete: wrote 3083 buffers (4.7%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.044 s, sync=0.095 s, total=0.156 s; sync files=42, longest=0.089 s, average=0.003 s; distance=30296 kB, estimate=30296 kB; lsn=0/3F746048, redo lsn=0/3F746048
2026-09-30 15:25:39.113 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:25:50.863 CEST [1] LOG: server process (PID 1279) was terminated by signal 9: Killed
2026-09-30 15:25:50.863 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:25:50.865 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:25:50.888 CEST [1294] FATAL: the database system is in recovery mode
2026-09-30 15:25:50.890 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:25:50.938 CEST [1295] LOG: database system was interrupted; last known up at 2026-09-30 15:25:39 CEST
2026-09-30 15:25:51.158 CEST [1295] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:25:51.163 CEST [1295] LOG: redo starts at 0/3F7460C0
2026-09-30 15:25:51.312 CEST [1295] LOG: unexpected pageaddr 0/3B28C000 in WAL segment 000000010000000000000041, LSN 0/4128C000, offset 2670592
2026-09-30 15:25:51.312 CEST [1295] LOG: redo done at 0/4128BF28 system usage: CPU: user: 0.08 s, system: 0.05 s, elapsed: 0.14 s
2026-09-30 15:25:51.335 CEST [1296] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:25:51.487 CEST [1296] LOG: checkpoint complete: wrote 2849 buffers (4.3%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.037 s, sync=0.096 s, total=0.157 s; sync files=42, longest=0.090 s, average=0.003 s; distance=27928 kB, estimate=27928 kB; lsn=0/4128C048, redo lsn=0/4128C048
2026-09-30 15:25:51.500 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:26:03.384 CEST [1] LOG: server process (PID 1314) was terminated by signal 9: Killed
2026-09-30 15:26:03.384 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:26:03.385 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:26:03.399 CEST [1337] FATAL: the database system is in recovery mode
2026-09-30 15:26:03.444 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:26:03.505 CEST [1338] LOG: database system was interrupted; last known up at 2026-09-30 15:25:51 CEST
2026-09-30 15:26:03.741 CEST [1338] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:26:03.764 CEST [1338] LOG: redo starts at 0/4128C0C0
2026-09-30 15:26:03.934 CEST [1338] LOG: unexpected pageaddr 0/3DFEC000 in WAL segment 000000010000000000000042, LSN 0/42FEC000, offset 16695296
2026-09-30 15:26:03.934 CEST [1338] LOG: redo done at 0/42FEB758 system usage: CPU: user: 0.11 s, system: 0.04 s, elapsed: 0.17 s
2026-09-30 15:26:03.946 CEST [1339] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:26:04.104 CEST [1339] LOG: checkpoint complete: wrote 3039 buffers (4.6%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.039 s, sync=0.104 s, total=0.162 s; sync files=42, longest=0.097 s, average=0.003 s; distance=30080 kB, estimate=30080 kB; lsn=0/42FEC048, redo lsn=0/42FEC048
2026-09-30 15:26:04.116 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:26:15.790 CEST [1] LOG: server process (PID 1349) was terminated by signal 9: Killed
2026-09-30 15:26:15.790 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:26:15.790 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:26:15.800 CEST [1373] FATAL: the database system is in recovery mode
2026-09-30 15:26:15.819 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:26:15.870 CEST [1374] LOG: database system was interrupted; last known up at 2026-09-30 15:26:04 CEST
2026-09-30 15:26:16.121 CEST [1374] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:26:16.126 CEST [1374] LOG: redo starts at 0/42FEC0C0
2026-09-30 15:26:16.297 CEST [1374] LOG: unexpected pageaddr 0/40D84000 in WAL segment 000000010000000000000044, LSN 0/44D84000, offset 14172160
2026-09-30 15:26:16.297 CEST [1374] LOG: redo done at 0/44D83F60 system usage: CPU: user: 0.10 s, system: 0.05 s, elapsed: 0.17 s
2026-09-30 15:26:16.316 CEST [1375] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:26:16.476 CEST [1375] LOG: checkpoint complete: wrote 3071 buffers (4.7%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.040 s, sync=0.106 s, total=0.164 s; sync files=43, longest=0.099 s, average=0.003 s; distance=30304 kB, estimate=30304 kB; lsn=0/44D84048, redo lsn=0/44D84048
2026-09-30 15:26:16.491 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:26:28.509 CEST [1] LOG: server process (PID 1422) was terminated by signal 9: Killed
2026-09-30 15:26:28.509 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:26:28.509 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:26:28.571 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:26:28.621 CEST [1426] LOG: database system was interrupted; last known up at 2026-09-30 15:26:16 CEST
2026-09-30 15:26:28.920 CEST [1426] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:26:28.930 CEST [1426] LOG: redo starts at 0/44D840C0
2026-09-30 15:26:29.093 CEST [1426] LOG: unexpected pageaddr 0/41B88000 in WAL segment 000000010000000000000046, LSN 0/46B88000, offset 12091392
2026-09-30 15:26:29.093 CEST [1426] LOG: redo done at 0/46B87938 system usage: CPU: user: 0.10 s, system: 0.05 s, elapsed: 0.16 s
2026-09-30 15:26:29.109 CEST [1427] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:26:29.267 CEST [1427] LOG: checkpoint complete: wrote 3099 buffers (4.7%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.040 s, sync=0.102 s, total=0.162 s; sync files=49, longest=0.094 s, average=0.003 s; distance=30736 kB, estimate=30736 kB; lsn=0/46B88048, redo lsn=0/46B88048
2026-09-30 15:26:29.283 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:26:41.072 CEST [1] LOG: server process (PID 1445) was terminated by signal 9: Killed
2026-09-30 15:26:41.072 CEST [1] DETAIL: Failed process was running: insert into "geodata_places" ("id", "name", "alternateNames", "latitude", "longitude", "countryCode", "admin1Code", "admin2Code", "modificationDate", "admin1Name", "admin2Name") values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11), ($12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33), ($34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44), ($45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55), ($56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66), ($67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77), ($78, $79, $80, $81, $82, $83, $84, $85, $86, $87, $88), ($89, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99), ($100, $101, $102, $103, $104, $105, $106, $107, $108, $109, $110), ($111, $112, $113, $114, $115, $116, $117, $118, $119, $120, $121), ($122, $123, $124, $125, $126, $127, $128, $129, $130, $131, $132), ($133, $134, $135, $136, $137, $138, $139, $140, $141, $142, $143), ($144, $145, $146, $147, $148, $149, $150, $151, $152, $153, $
2026-09-30 15:26:41.072 CEST [1] LOG: terminating any other active server processes
2026-09-30 15:26:41.104 CEST [1461] FATAL: the database system is in recovery mode
2026-09-30 15:26:41.106 CEST [1] LOG: all server processes terminated; reinitializing
2026-09-30 15:26:41.156 CEST [1462] LOG: database system was interrupted; last known up at 2026-09-30 15:26:29 CEST
2026-09-30 15:26:41.375 CEST [1462] LOG: database system was not properly shut down; automatic recovery in progress
2026-09-30 15:26:41.379 CEST [1462] LOG: redo starts at 0/46B880C0
2026-09-30 15:26:41.549 CEST [1462] LOG: unexpected pageaddr 0/43758000 in WAL segment 000000010000000000000048, LSN 0/48758000, offset 7700480
2026-09-30 15:26:41.549 CEST [1462] LOG: redo done at 0/48757EE8 system usage: CPU: user: 0.09 s, system: 0.05 s, elapsed: 0.16 s
2026-09-30 15:26:41.567 CEST [1463] LOG: checkpoint starting: end-of-recovery immediate wait
2026-09-30 15:26:41.735 CEST [1463] LOG: checkpoint complete: wrote 2899 buffers (4.4%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.045 s, sync=0.102 s, total=0.171 s; sync files=42, longest=0.094 s, average=0.003 s; distance=28480 kB, estimate=28480 kB; lsn=0/48758048, redo lsn=0/48758048
2026-09-30 15:26:41.747 CEST [1] LOG: database system is ready to accept connections
@@ -0,0 +1,17 @@
up rc 0 ontainer immich-machine-learning Starting
Container immich-postgres Starting
Container immich-machine-learning Started
Container immich-redis Started
Container immich-postgres Started
Container immich-postgres Waiting
Container immich-redis Waiting
Container immich-postgres Healthy
Container immich-redis Healthy
Container immich-server Starting
Container immich-server Started
settled False 422.2 {"immich-machine-learning": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-server": {"status": "running", "health": "starting", "restarts": 0, "exit": 0}}
immich-machine-learning 172.19.0.3
immich-postgres 172.19.0.4
immich-redis 172.19.0.2
immich-server 172.19.0.5
File diff suppressed because one or more lines are too long
@@ -0,0 +1,11 @@
autovacuum_work_mem|-1|kB|default|
dynamic_shared_memory_type|posix||configuration file|/var/lib/postgresql/data/postgresql.conf
effective_cache_size|524288|8kB|default|
huge_pages|try||default|
maintenance_work_mem|65536|kB|default|
max_connections|100||configuration file|/var/lib/postgresql/data/postgresql.conf
max_parallel_maintenance_workers|2||default|
max_worker_processes|8||default|
shared_buffers|65536|8kB|configuration file|/etc/postgresql/postgresql.conf
temp_buffers|1024|8kB|default|
work_mem|16384|kB|configuration file|/etc/postgresql/postgresql.conf
@@ -0,0 +1,46 @@
# pgsample immich-postgres from 2026-09-30T14:10:03Z; host MemTotal 10485760 kB; cgroup cgroup2fs
# id 2cf399ffcbdcab9909338e0477b2faa3747bc2d061398a370bc63a712a0d871e cgroup /sys/fs/cgroup/system.slice/docker-2cf399ffcbdcab9909338e0477b2faa3747bc2d061398a370bc63a712a0d871e.scope limit 805306368
t_s current anon file shmem file_dirty file_writeback oom oom_kill server
0 5767168 536576 1675264 0 4096 0 0 0
none
3 128917504 5849088 114683904 32735232 81920 0 0 0
none
5 128049152 5849088 114683904 32735232 81920 0 0 0
none
7 129089536 5849088 115458048 33316864 274432 0 0 0
none
9 128868352 5849088 115458048 33316864 274432 0 0 0
none
11 128868352 5849088 115458048 33316864 274432 0 0 0
none
13 128835584 5849088 115458048 33316864 274432 0 0 0 starting
15 132018176 7593984 116162560 34021376 274432 0 0 0 starting
17 129552384 5849088 116162560 34021376 217088 0 0 0 starting
19 145784832 14536704 121200640 37675008 1073152 0 0 0 starting
21 167251968 21188608 130064384 41553920 2809856 0 0 0 starting
23 179851264 32727040 135102464 46239744 3178496 0 0 0 starting
25 454885376 200589312 236412928 67489792 24518656 0 0 0 starting
27 599625728 222720000 365735936 91738112 9441280 0 0 0 starting
29 805306368 429056000 354283520 106549248 24252416 0 0 0 starting
31 599379968 205815808 371171328 119693312 37183488 0 0 0 starting
33 693100544 220385280 449499136 141811712 25231360 0 0 0 starting
35 718692352 245829632 449499136 141811712 25231360 0 0 0 starting
37 790499328 205365248 559194112 173457408 56909824 0 0 0 starting
39 768954368 154783744 587857920 177135616 14376960 0 0 0 starting
41 791416832 174878720 590839808 178626560 15867904 0 0 0 starting
43 804331520 174878720 603406336 178626560 14098432 0 0 0 healthy
45 804331520 174878720 603406336 178626560 1531904 0 0 0 healthy
47 800915456 174878720 599646208 178626560 1531904 0 0 0 healthy
49 800993280 174878720 599646208 178626560 1531904 0 0 0 healthy
51 800473088 174878720 599646208 178626560 1531904 0 0 0 healthy
53 801386496 174878720 600678400 180371456 1581056 0 0 0 healthy
56 801386496 174878720 600678400 180371456 1581056 0 0 0 healthy
58 800038912 174878720 599359488 180371456 1613824 0 0 0 healthy
60 799944704 174878720 599359488 180371456 1613824 0 0 0 healthy
62 799940608 174878720 599359488 180371456 1613824 0 0 0 healthy
64 799940608 174878720 599359488 180371456 1613824 0 0 0 healthy
66 799940608 174878720 599359488 180371456 1613824 0 0 0 healthy
68 799948800 174878720 599359488 180371456 1613824 0 0 0 healthy
70 799940608 174878720 599359488 180371456 1613824 0 0 0 healthy
72 799940608 174878720 599359488 180371456 1613824 0 0 0 healthy
# end 2026-09-30T14:11:15Z
@@ -0,0 +1,17 @@
up rc 0 ontainer immich-machine-learning Starting
Container immich-postgres Starting
Container immich-redis Started
Container immich-machine-learning Started
Container immich-postgres Started
Container immich-redis Waiting
Container immich-postgres Waiting
Container immich-postgres Healthy
Container immich-redis Healthy
Container immich-server Starting
Container immich-server Started
settled True 31.4 {"immich-machine-learning": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-server": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
immich-machine-learning 172.27.0.4
immich-postgres 172.27.0.3
immich-redis 172.27.0.2
immich-server 172.27.0.5
@@ -0,0 +1,46 @@
# pgsample immich-postgres from 2026-09-30T14:11:22Z; host MemTotal 10485760 kB; cgroup cgroup2fs
# id aa4584b69b303b703d0b937668d33d73cc429bc780f1ba14441a1326b8b31a94 cgroup /sys/fs/cgroup/system.slice/docker-aa4584b69b303b703d0b937668d33d73cc429bc780f1ba14441a1326b8b31a94.scope limit 805306368
t_s current anon file shmem file_dirty file_writeback oom oom_kill server
0 3579904 487424 98304 0 4096 0 0 0
none
2 122015744 5853184 108068864 32735232 40960 0 0 0
none
4 121454592 5853184 108068864 32735232 40960 0 0 0
none
6 122249216 5853184 108843008 33316864 208896 0 0 0
none
8 122249216 5853184 108843008 33316864 208896 0 0 0
none
10 122245120 5853184 108843008 33316864 212992 0 0 0
none
12 122245120 5853184 108843008 33316864 212992 0 0 0 starting
14 125448192 7598080 109547520 34021376 212992 0 0 0 starting
16 122957824 5853184 109547520 34021376 212992 0 0 0 starting
18 135950336 13897728 112680960 36769792 548864 0 0 0 starting
20 154324992 20066304 122916864 40386560 2654208 0 0 0 starting
22 173936640 32702464 128892928 46239744 3170304 0 0 0 starting
24 507224064 281075712 221700096 67432448 24457216 0 0 0 starting
26 752189440 432689152 290017280 82063360 1130496 0 0 0 starting
28 626561024 248967168 356139008 103567360 22638592 0 0 0 starting
30 598753280 209215488 368136192 119353344 38424576 0 0 0 starting
33 660791296 236048384 402489344 119484416 4124672 0 0 0 starting
35 692285440 203612160 465797120 151138304 35782656 0 0 0 starting
37 741949440 223498240 492539904 152113152 36265984 0 0 0 starting
39 805265408 245686272 534519808 156065792 14344192 0 0 0 starting
41 766648320 195469312 546492416 179486720 37765120 0 0 0 starting
43 802070528 195469312 580964352 179486720 34480128 0 0 0 healthy
45 802070528 195469312 580964352 179486720 8192 0 0 0 healthy
47 800731136 195469312 578842624 179486720 8192 0 0 0 healthy
49 799899648 195469312 578842624 179486720 8192 0 0 0 healthy
51 799895552 195469312 578842624 179486720 8192 0 0 0 healthy
53 801353728 195469312 580255744 181231616 81920 0 0 0 healthy
55 800641024 195469312 580255744 181231616 81920 0 0 0 healthy
57 799453184 195469312 579239936 181231616 114688 0 0 0 healthy
59 799457280 195469312 579239936 181231616 106496 0 0 0 healthy
61 799375360 195469312 579239936 181231616 106496 0 0 0 healthy
63 799379456 195469312 579239936 181231616 106496 0 0 0 healthy
65 799379456 195469312 579239936 181231616 106496 0 0 0 healthy
67 799584256 195469312 579239936 181231616 106496 0 0 0 healthy
69 799375360 195469312 579239936 181231616 106496 0 0 0 healthy
72 799375360 195469312 579239936 181231616 106496 0 0 0 healthy
# end 2026-09-30T14:12:35Z
@@ -0,0 +1,17 @@
up rc 0 ontainer immich-postgres Starting
Container immich-machine-learning Starting
Container immich-machine-learning Started
Container immich-postgres Started
Container immich-redis Started
Container immich-postgres Waiting
Container immich-redis Waiting
Container immich-postgres Healthy
Container immich-redis Healthy
Container immich-server Starting
Container immich-server Started
settled True 31.4 {"immich-machine-learning": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-server": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
immich-machine-learning 172.28.0.2
immich-postgres 172.28.0.3
immich-redis 172.28.0.4
immich-server 172.28.0.5
@@ -0,0 +1,438 @@
# pgsample immich-postgres from 2026-09-30T13:29:34Z; host MemTotal 10485760 kB; cgroup cgroup2fs
# id 8b71e14fb9d5522f461b93b346b3e28ec4b43b2fd3b5d0477a65ad84a2ab5213 cgroup /sys/fs/cgroup/system.slice/docker-8b71e14fb9d5522f461b93b346b3e28ec4b43b2fd3b5d0477a65ad84a2ab5213.scope limit 536870912
t_s current anon file shmem oom oom_kill server
0 4571136 569344 1859584 0 0 0
none
2 102240256 5844992 88203264 12230656 0 0
none
4 101445632 5844992 88203264 12230656 0 0
none
6 102563840 5844992 88981504 12812288 0 0
none
8 102338560 5844992 88981504 12812288 0 0
none
10 102248448 5844992 88981504 12812288 0 0
none
12 102244352 5844992 88981504 12812288 0 0 starting
14 105385984 7585792 89686016 13516800 0 0 starting
16 102969344 5844992 89686016 13516800 0 0 starting
18 118198272 15040512 93626368 16846848 0 0 starting
20 135139328 21762048 101584896 19873792 0 0 starting
22 152735744 32620544 107847680 25735168 0 0 starting
24 512090112 305885184 199802880 45625344 0 0 starting
27 155693056 4673536 144076800 40939520 3 2 starting
29 158601216 6033408 145141760 41992192 3 2 starting
31 163397632 7798784 147804160 43020288 3 2 starting
33 161292288 6041600 147804160 43020288 3 2 starting
35 175718400 14434304 152141824 44834816 3 2 starting
37 241901568 79859712 132116480 45424640 3 2 starting
39 25534464 3010560 17838080 0 4 3 starting
41 155811840 5898240 142098432 39972864 4 3 starting
43 162344960 7659520 145698816 41304064 4 3 starting
45 159539200 5906432 145698816 41304064 4 3 starting
47 182247424 14299136 158003200 44339200 4 3 starting
49 209580032 55242752 142348288 44974080 4 3 starting
51 536719360 397557760 125124608 45498368 4 3 starting
53 133812224 4108288 11608064 11091968 35 6 unhealthy
55 235040768 5902336 220770304 50434048 35 6 starting
57 245698560 7663616 229195776 51789824 35 6 starting
59 243605504 5910528 229195776 51789824 35 6 starting
61 254660608 13893632 230871040 52494336 35 6 starting
63 243752960 23031808 210513920 55517184 35 6 starting
65 468611072 234557440 232247296 55517184 35 6 starting
67 179216384 5910528 165273600 39890944 36 7 starting
69 179200000 5910528 165273600 39890944 36 7 starting
71 183697408 5918720 169152512 41304064 36 7 starting
73 183193600 5918720 169152512 41304064 36 7 starting
76 194400256 23056384 161185792 45170688 36 7 starting
78 493445120 264552448 227016704 45170688 36 7 starting
80 498171904 357122048 106729472 54042624 36 7 starting
82 233160704 5914624 218853376 49594368 37 8 starting
84 239816704 7684096 222773248 51023872 37 8 starting
86 237187072 5922816 222773248 51023872 37 8 starting
88 241975296 5922816 227450880 51023872 37 8 starting
90 243343360 23072768 209530880 54956032 37 8 starting
92 507596800 272797696 217784320 54956032 37 8 starting
94 536870912 386650112 108351488 55062528 37 8 starting
96 228294656 5926912 213975040 48472064 39 10 starting
98 239792128 7696384 222572544 49893376 39 10 starting
100 237408256 5935104 222580736 49893376 39 10 starting
102 237326336 5935104 222580736 49893376 39 10 starting
104 239718400 23089152 206077952 53866496 39 10 starting
106 484696064 237436928 224923648 53866496 39 10 starting
108 155881472 5918720 142245888 36294656 43 12 starting
110 155729920 5918720 142245888 36294656 43 12 starting
112 159813632 5926912 146214912 37732352 43 12 starting
114 159735808 5926912 146214912 37732352 43 12 starting
116 175345664 23097344 141770752 41779200 43 12 starting
118 473047040 286838784 171589632 41779200 43 12 starting
120 341237760 211496960 115417088 53084160 43 12 starting
122 239816704 4415488 223621120 49348608 62 14 starting
124 239112192 5939200 224702464 50409472 62 14 starting
126 243396608 5947392 228704256 51855360 62 14 starting
129 248090624 5947392 233381888 51855360 62 14 starting
131 248393728 22757376 214740992 55943168 62 14 starting
133 513077248 275968000 222973952 55943168 62 14 starting
135 157171712 5926912 142434304 36368384 68 16 starting
137 155975680 5926912 142434304 36368384 68 16 starting
139 165134336 5935104 151138304 37822464 68 16 starting
141 164872192 5935104 151138304 37822464 68 16 starting
143 183873536 20602880 159363072 41357312 68 16 starting
145 428822528 270749696 153272320 41926656 68 16 starting
147 517554176 431034368 91033600 49102848 68 16 starting
149 400322560 246231040 139075584 65101824 68 16 starting
151 304754688 5943296 289382400 61149184 70 18 starting
153 304537600 5943296 289382400 61149184 70 18 starting
155 308924416 5951488 293474304 62636032 70 18 starting
157 308924416 5951488 293474304 62636032 70 18 starting
159 302944256 23138304 268877824 66764800 70 18 starting
161 520585216 275959808 226312192 66764800 70 18 starting
163 159498240 4395008 143847424 35430400 71 19 starting
165 158613504 5955584 144928768 36491264 71 19 starting
167 162762752 5963776 149037056 37978112 71 19 starting
169 167710720 5963776 153714688 37978112 71 19 starting
171 189353984 33800192 149221376 42156032 71 19 starting
173 485203968 317394944 167690240 42156032 71 19 starting
175 314093568 213794816 87998464 53174272 71 19 starting
177 450408448 275992576 121413632 64978944 71 19 starting
180 299352064 5931008 283697152 59621376 75 21 starting
182 298938368 5931008 283697152 59621376 75 21 starting
184 303222784 5939200 287735808 61108224 75 21 starting
186 303009792 5939200 287735808 61108224 75 21 starting
188 293654528 23101440 259813376 65294336 75 21 starting
190 521867264 274567168 228470784 65294336 75 21 starting
192 157880320 5951488 143503360 36573184 83 22 starting
194 157237248 5951488 143503360 36573184 83 22 starting
196 161382400 5959680 147636224 38068224 83 22 starting
198 161382400 5959680 147636224 38068224 83 22 starting
200 180772864 23109632 147419136 42262528 83 22 starting
202 501424128 291790848 181972992 42262528 83 22 starting
204 360144896 243871744 101916672 52854784 83 22 starting
206 225402880 5955584 210980864 48111616 85 23 starting
208 225320960 5955584 210980864 48111616 85 23 starting
210 234516480 5963776 219860992 49639424 85 23 starting
212 234438656 5963776 219860992 49639424 85 23 starting
214 237477888 23117824 203542528 53817344 85 23 starting
216 506732544 274472960 217313280 53817344 85 23 starting
218 158072832 5963776 143695872 36253696 87 25 starting
220 164290560 5971968 150085632 36847616 87 25 starting
222 166862848 5971968 152592384 37781504 87 25 starting
224 166608896 5971968 152592384 37781504 87 25 starting
226 193609728 21200896 161390592 41512960 87 25 starting
228 388829184 229789696 146456576 42606592 87 25 starting
231 47853568 4169728 37806080 11091968 89 27 unhealthy
233 157675520 5984256 143904768 36679680 89 27 starting
235 164159488 7753728 148094976 38199296 89 27 starting
237 162119680 5992448 148094976 38199296 89 27 starting
239 185290752 14741504 160731136 41750528 89 27 starting
241 181436416 23138304 147910656 42418176 89 27 starting
243 458006528 227569664 214847488 42418176 89 27 starting
245 37982208 4157440 27803648 11091968 90 28 starting
247 243286016 5971968 228741120 51179520 90 28 starting
249 254775296 7745536 237719552 52715520 90 28 starting
251 252485632 5980160 237719552 52715520 90 28 starting
253 264253440 13979648 240037888 53772288 90 28 starting
255 252153856 23400448 218312704 56983552 90 28 starting
257 475242496 227418112 232419328 56983552 90 28 starting
259 166072320 5963776 151842816 37036032 91 29 starting
261 165707776 5971968 151842816 37036032 91 29 starting
263 168591360 5971968 154451968 37978112 91 29 starting
265 168329216 5971968 154451968 37978112 91 29 starting
267 182657024 23183360 149512192 42295296 91 29 starting
269 472272896 274288640 179261440 42295296 91 29 starting
271 369504256 242348032 112721920 52871168 91 29 starting
273 226500608 5984256 211922944 48037888 93 31 starting
275 226344960 5984256 211922944 48037888 93 31 starting
277 230850560 5992448 216207360 49565696 93 31 starting
279 236011520 5992448 220884992 49565696 93 31 starting
281 245407744 30457856 204550144 53874688 93 31 starting
283 509333504 266432512 225239040 53874688 93 31 starting
286 153526272 4431872 141836288 35241984 94 32 starting
288 156577792 5980160 142917632 36302848 94 32 starting
290 166240256 5988352 151937024 37847040 94 32 starting
292 166002688 5988352 151937024 37847040 94 32 starting
294 181063680 22548480 147673088 42205184 94 32 starting
296 440205312 283795456 155553792 42205184 94 32 starting
298 149479424 4820992 101584896 26021888 95 33 starting
300 164102144 5971968 149942272 37011456 95 33 starting
302 168591360 7737344 152567808 37961728 95 33 starting
304 166490112 5971968 152567808 37961728 95 33 starting
306 184889344 14389248 160931840 41676800 95 33 starting
308 241238016 69541888 142753792 42311680 95 33 starting
310 208388096 455692288 68046848 43868160 95 33 starting
312 158613504 6000640 144863232 36343808 96 34 starting
314 165466112 7770112 149213184 37896192 96 34 starting
316 163192832 6008832 149213184 37896192 96 34 starting
318 186421248 24793088 155222016 40562688 96 34 starting
320 181555200 22491136 149295104 42229760 96 34 starting
322 454799360 220110848 214016000 42229760 96 34 starting
324 157581312 5959680 143396864 36286464 99 36 starting
326 164360192 7720960 147439616 37748736 99 36 starting
328 161390592 5967872 147644416 37822464 99 36 starting
330 166404096 5967872 152322048 37822464 99 36 starting
332 181260288 23154688 148103168 42213376 99 36 starting
334 490008576 273494016 214581248 42213376 99 36 starting
336 156831744 5980160 142655488 35782656 119 38 starting
338 156442624 5980160 142655488 35782656 119 38 starting
341 165945344 5988352 151605248 37335040 119 38 starting
343 165490688 5988352 151605248 37335040 119 38 starting
345 181571584 23207936 147628032 41742336 119 38 starting
347 470196224 278704128 176316416 41742336 119 38 starting
349 157720576 4415488 145362944 35897344 121 40 starting
351 167108608 5963776 152842240 37552128 121 40 starting
353 169758720 5963776 155451392 38510592 121 40 starting
355 169758720 5963776 155451392 38510592 121 40 starting
357 183418880 29687808 150151168 42917888 121 40 starting
359 439975936 240693248 143040512 42917888 121 40 starting
361 47861760 3026944 37507072 11091968 124 41 unhealthy
363 158334976 5971968 144416768 36384768 124 41 starting
365 164646912 7741440 148865024 37945344 124 41 starting
367 162619392 5980160 148865024 37945344 124 41 starting
369 181501952 14381056 157446144 41734144 124 41 starting
371 182263808 23130112 148942848 42385408 124 41 starting
373 521564160 264830976 213856256 42385408 124 41 starting
375 151642112 5959680 137461760 35110912 134 42 starting
377 158375936 7737344 141860864 36663296 134 42 starting
379 155570176 5967872 141860864 36663296 134 42 starting
382 160825344 5967872 146538496 36663296 134 42 starting
384 176713728 23134208 143286272 41103360 134 42 starting
386 475545600 250265600 209756160 41103360 134 42 starting
388 160743424 5996544 146681856 36745216 135 43 starting
390 160423936 5996544 146681856 36745216 135 43 starting
392 170029056 6004736 155799552 38289408 135 43 starting
394 170029056 6004736 155799552 38289408 135 43 starting
396 184872960 23179264 150880256 42737664 135 43 starting
398 471609344 282959872 173240320 42737664 135 43 starting
400 147726336 4399104 136015872 34402304 138 45 starting
402 157491200 5963776 143642624 36040704 138 45 starting
404 160350208 5963776 146214912 37007360 138 45 starting
406 160034816 5963776 146214912 37007360 138 45 starting
408 186740736 25460736 142520320 41472000 138 45 starting
410 446525440 278081536 144535552 41472000 138 45 starting
412 144494592 4186112 36003840 11091968 140 47 starting
414 152473600 5996544 138797056 35061760 140 47 starting
416 156921856 6004736 143249408 36614144 140 47 starting
418 156921856 6004736 143249408 36614144 140 47 starting
420 175280128 14422016 151851008 40427520 140 47 starting
423 221327360 63516672 144642048 41070592 140 47 starting
425 76120064 103792640 67911680 43732992 143 48 starting
427 156368896 5988352 142712832 36196352 143 48 starting
429 163803136 7766016 147181568 37756928 143 48 starting
431 161120256 5996544 147181568 37756928 143 48 starting
433 182923264 14188544 154697728 38961152 143 48 starting
435 181444608 23482368 147865600 42254336 143 48 starting
437 457986048 243916800 212467712 42254336 143 48 starting
439 154898432 6017024 140853248 35733504 149 50 starting
441 154517504 6017024 140853248 35733504 149 50 starting
443 163942400 6025216 150040576 37302272 149 50 starting
445 163942400 6025216 150040576 37302272 149 50 starting
447 179527680 23187456 146079744 41807872 149 50 starting
449 493375488 298020864 179822592 41807872 149 50 starting
451 151744512 4886528 121643008 30429184 150 51 starting
453 165412864 6000640 151465984 36679680 150 51 starting
455 170303488 6008832 155987968 38248448 150 51 starting
457 169979904 6008832 155987968 38248448 150 51 starting
459 184602624 22843392 151027712 42754048 150 51 starting
461 446754816 282120192 152920064 42754048 150 51 starting
463 48177152 4194304 37752832 11091968 152 52 unhealthy
465 157569024 6025216 143310848 36229120 152 52 starting
468 163758080 7802880 147832832 37797888 152 52 starting
470 161603584 6033408 147832832 37797888 152 52 starting
472 189235200 14536704 156549120 41676800 152 52 starting
474 326959104 133595136 139386880 42311680 152 52 starting
476 75796480 3448832 67600384 43352064 153 53 starting
478 157032448 6012928 143376384 35954688 153 53 starting
480 164126720 7794688 147898368 37523456 153 53 starting
482 166715392 6021120 152576000 37523456 153 53 starting
484 168116224 6725632 152576000 37523456 153 53 starting
486 181628928 23179264 148492288 42078208 153 53 starting
488 434561024 201596928 212189184 42078208 153 53 starting
490 342589440 211726336 116002816 53506048 153 53 starting
492 234450944 7630848 218714112 47665152 158 54 starting
494 235585536 6049792 220680192 48726016 158 54 starting
496 240209920 6057984 225177600 50278400 158 54 starting
498 239988736 6057984 225177600 50278400 158 54 starting
500 242483200 23236608 208678912 54841344 158 54 starting
502 532570112 284442624 235655168 54841344 158 54 starting
504 161247232 4206592 37404672 11091968 159 55 starting
507 169648128 6021120 155570176 38412288 159 55 starting
509 174276608 6029312 160075776 39964672 159 55 starting
511 173940736 6029312 160075776 39964672 159 55 starting
513 220241920 24903680 173621248 43917312 159 55 starting
515 451452928 234790912 160440320 44568576 159 55 starting
517 536383488 447434752 75587584 45182976 159 55 starting
519 32440320 4182016 22401024 11091968 162 57 unhealthy
521 229617664 6008832 214671360 48250880 162 57 starting
523 241090560 7790592 223895552 49819648 162 57 starting
525 238624768 6017024 223895552 49819648 162 57 starting
527 257277952 14434304 232660992 53747712 162 57 starting
529 348180480 116625408 198664192 54382592 162 57 starting
531 536600576 338808832 182579200 54382592 162 57 starting
533 166387712 4452352 154214400 36438016 163 58 starting
535 169340928 6008832 155295744 37498880 163 58 starting
537 174211072 6017024 159875072 39075840 163 58 starting
540 173957120 6017024 159875072 39075840 163 58 starting
542 193794048 31539200 154218496 43696128 163 58 starting
544 451010560 299876352 158580736 43696128 163 58 starting
546 536571904 447184896 75792384 44843008 163 58 starting
548 37904384 3059712 16498688 0 167 60 unhealthy
550 239439872 6017024 224083968 49291264 167 60 starting
552 245563392 7802880 228655104 50868224 167 60 starting
554 248324096 6025216 233332736 50868224 167 60 starting
556 267517952 14471168 242348032 54829056 167 60 starting
558 303263744 74915840 205434880 55472128 167 60 starting
560 461148160 219041792 226639872 55472128 167 60 starting
562 152862720 4481024 141033472 34705408 169 62 starting
564 162684928 6037504 148725760 36343808 169 62 starting
567 165314560 6037504 151347200 37335040 169 62 starting
569 165314560 6037504 151347200 37335040 169 62 starting
571 182136832 23265280 147828736 41947136 169 62 starting
573 442105856 267767808 157859840 41947136 169 62 starting
575 46788608 3059712 24649728 0 180 64 unhealthy
577 151195648 5996544 137342976 35143680 180 64 starting
579 158425088 7778304 141889536 36704256 180 64 starting
581 155578368 6004736 141889536 36704256 180 64 starting
583 181952512 17698816 154714112 40722432 180 64 starting
585 276946944 117489664 134430720 41381888 180 64 starting
588 445964288 229961728 209444864 41381888 180 64 starting
590 155406336 4460544 143327232 35024896 182 66 starting
592 158244864 6012928 144506880 36085760 182 66 starting
594 168587264 6021120 153698304 37646336 182 66 starting
596 167690240 6021120 153698304 37646336 182 66 starting
598 196214784 21757952 163016704 41771008 182 66 starting
600 332242944 151990272 140832768 42340352 182 66 starting
602 431443968 196141056 215281664 42340352 182 66 starting
604 160411648 6017024 146214912 36245504 185 68 starting
606 160104448 6017024 146214912 36245504 185 68 starting
608 162705408 6017024 148832256 37236736 185 68 starting
610 162705408 6017024 148832256 37236736 185 68 starting
612 178749440 23236608 145317888 41914368 185 68 starting
614 477757440 260386816 209715200 41914368 185 68 starting
616 22147072 4198400 11608064 11091968 189 70 starting
618 232157184 6025216 217628672 49053696 189 70 starting
620 239083520 7806976 222171136 50630656 189 70 starting
622 236711936 6033408 222171136 50630656 189 70 starting
624 266559488 21704704 234192896 53895168 189 70 starting
626 244117504 23547904 210145280 55316480 189 70 starting
628 520810496 240218112 239861760 55316480 189 70 starting
630 157306880 6008832 143036416 36020224 201 73 starting
632 163864576 7782400 147587072 37597184 201 73 starting
634 166223872 6017024 152264704 37597184 201 73 starting
636 166813696 6017024 152264704 37597184 201 73 starting
638 181473280 23191552 148275200 42307584 201 73 starting
640 454303744 221241344 213360640 42307584 201 73 starting
642 155484160 4194304 11870208 11091968 218 76 unhealthy
645 230137856 6008832 215425024 48332800 218 76 starting
647 235089920 7778304 218042368 49324032 218 76 starting
649 232816640 6008832 218042368 49324032 218 76 starting
651 251883520 14430208 227225600 53358592 218 76 starting
653 392048640 169803776 193695744 54009856 218 76 starting
655 22163456 4206592 11608064 11091968 223 78 starting
657 156553216 6012928 142770176 35889152 223 78 starting
659 163471360 7794688 147320832 37466112 223 78 starting
661 161116160 6021120 147320832 37466112 223 78 starting
663 172167168 10272768 148054016 37834752 223 78 starting
665 181641216 23232512 148180992 42209280 223 78 starting
667 478584832 242819072 213987328 42209280 223 78 starting
669 22495232 4210688 12050432 11091968 226 80 starting
671 226136064 6041600 211476480 47927296 226 80 starting
673 232779776 7823360 215986176 49496064 226 80 starting
675 235487232 6049792 220663808 49496064 226 80 starting
677 254676992 14462976 229904384 53547008 226 80 starting
679 238968832 23465984 205041664 54181888 226 80 starting
681 524312576 401948672 120025088 54181888 226 80 starting
683 367677440 242118656 111714304 64733184 226 80 starting
685 113848320 4206592 11558912 11091968 251 82 unhealthy
688 408768512 6029312 391704576 72802304 251 82 starting
690 416022528 7811072 396263424 74379264 251 82 starting
692 413319168 6037504 396263424 74379264 251 82 starting
694 432750592 14462976 405504000 78479360 251 82 starting
696 448094208 76185600 351526912 79147008 251 82 starting
698 90841088 4194304 11804672 11091968 258 84 unhealthy
700 156733440 6008832 142831616 35848192 258 84 starting
702 163500032 7786496 147398656 37425152 258 84 starting
704 161325056 6017024 147398656 37425152 258 84 starting
706 185516032 14430208 161382400 41558016 258 84 starting
708 374960128 213299200 140419072 42184704 258 84 starting
710 363732992 274235392 103849984 53063680 258 84 starting
712 239722496 6037504 224661504 50556928 259 85 starting
714 239525888 6037504 224661504 50556928 259 85 starting
716 249565184 6049792 233889792 52133888 259 85 starting
718 248991744 6049792 233889792 52133888 259 85 starting
720 269078528 14454784 243331072 56250368 259 85 starting
722 455561216 229511168 210440192 56909824 259 85 starting
724 412569600 332742656 92295168 56909824 259 85 starting
726 411033600 276226048 100409344 64618496 259 85 starting
729 337797120 4878336 199921664 46075904 293 90 starting
731 363483136 6008832 347385856 70635520 293 90 starting
733 368246784 6017024 351952896 72220672 293 90 starting
735 368082944 6017024 351952896 72220672 293 90 starting
737 364470272 24911872 345657344 76980224 293 90 starting
739 533483520 238272512 265641984 76980224 293 90 starting
741 138498048 4870144 56553472 19501056 304 92 unhealthy
743 138514432 6017024 124215296 35504128 304 92 starting
745 145321984 7798784 128790528 37089280 304 92 starting
747 148062208 6025216 133468160 37089280 304 92 starting
749 167137280 14462976 142897152 41279488 304 92 starting
751 283914240 142815232 121188352 41930752 304 92 starting
753 512630784 448397312 73080832 49246208 304 92 starting
755 365707264 245112832 105869312 65638400 304 92 starting
757 156540928 4194304 11575296 11091968 343 95 unhealthy
760 374444032 6004736 358146048 73248768 343 95 starting
762 381136896 7782400 362680320 74825728 343 95 starting
764 379031552 6012928 362680320 74825728 343 95 starting
766 404357120 16211968 375566336 79007744 343 95 starting
768 503414784 149512192 317681664 79650816 343 95 starting
770 135323648 4206592 13230080 11091968 350 97 unhealthy
772 143048704 6008832 129073152 35864576 350 97 starting
774 150278144 7786496 133697536 37466112 350 97 starting
776 153624576 6017024 138375168 37466112 350 97 starting
778 171778048 14434304 147927040 41705472 350 97 starting
780 168316928 23547904 134803456 42340352 350 97 starting
782 536809472 321548288 199036928 42340352 350 97 starting
784 385896448 247025664 124579840 64892928 350 97 starting
786 402587648 444993536 79454208 79433728 354 97 starting
788 398237696 6041600 380788736 70676480 376 100 starting
790 404951040 7819264 385433600 72286208 376 100 starting
792 403185664 6049792 385433600 72286208 376 100 starting
794 422469632 14364672 394858496 76468224 376 100 starting
796 387338240 23412736 351449088 77144064 376 100 starting
798 536645632 368119808 153669632 77152256 376 100 starting
800 151633920 6012928 137641984 35438592 385 103 starting
803 158576640 7794688 142274560 37048320 385 103 starting
805 156495872 6021120 142274560 37048320 385 103 starting
807 172556288 11005952 148078592 37539840 385 103 starting
809 177139712 23228416 143740928 41914368 385 103 starting
811 454332416 243437568 208719872 41914368 385 103 starting
813 21827584 3059712 28631040 27447296 386 104 starting
815 242151424 6000640 227201024 50442240 386 104 starting
817 254660608 7778304 236527616 52060160 386 104 starting
819 251686912 6008832 236527616 52060160 386 104 starting
821 277360640 21549056 244084736 55463936 386 104 starting
823 253120512 23449600 218202112 56942592 386 104 starting
825 536772608 283852800 237559808 56942592 386 104 starting
827 449658880 332054528 102019072 64045056 386 104 starting
829 474886144 338194432 108130304 77692928 386 104 starting
831 421519360 247668736 158535680 92405760 386 104 starting
833 524398592 272424960 235884544 114302976 386 104 starting
835 536662016 290336768 229756928 116547584 386 104 starting
837 536842240 290385920 230473728 122818560 386 104 starting
839 497078272 251133952 230678528 146161664 386 104 starting
841 518664192 226430976 274710528 147279872 386 104 starting
843 524259328 226435072 281174016 147279872 386 104 starting
845 524259328 226435072 281174016 147279872 386 104 healthy
848 524713984 226435072 281567232 147279872 386 104 healthy
850 524652544 226435072 281567232 147279872 386 104 healthy
852 524652544 226435072 281567232 147279872 386 104 healthy
855 524652544 226435072 281567232 147279872 386 104 healthy
857 525168640 226435072 281571328 147279872 386 104 healthy
859 524656640 226435072 281571328 147279872 386 104 healthy
862 524656640 226435072 281571328 147279872 386 104 healthy
864 524656640 226435072 281571328 147279872 386 104 healthy
867 524656640 226435072 281571328 147279872 386 104 healthy
869 524660736 226435072 281571328 147279872 386 104 healthy
871 524660736 226435072 281571328 147279872 386 104 healthy
874 536510464 239243264 280047616 147288064 386 104 healthy
876 520773632 226443264 277483520 147288064 386 104 healthy
878 520527872 226443264 277483520 147288064 386 104 healthy
# end 2026-09-30T13:44:14Z
@@ -0,0 +1,17 @@
up rc 0 ontainer immich-postgres Starting
Container immich-machine-learning Starting
Container immich-redis Started
Container immich-machine-learning Started
Container immich-postgres Started
Container immich-postgres Waiting
Container immich-redis Waiting
Container immich-postgres Healthy
Container immich-redis Healthy
Container immich-server Starting
Container immich-server Started
settled False 425.0 {"immich-machine-learning": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-server": {"status": "running", "health": "starting", "restarts": 0, "exit": 0}}
immich-machine-learning 172.20.0.3
immich-postgres 172.20.0.4
immich-redis 172.20.0.2
immich-server 172.20.0.5
@@ -0,0 +1,105 @@
# pgsample immich-postgres from 2026-09-30T13:45:14Z; host MemTotal 10485760 kB; cgroup cgroup2fs
# id a8bf392e3c5c2661a520198e34fdf44cac2c81b9e3e6c1bdc975522a0ef8dd79 cgroup /sys/fs/cgroup/system.slice/docker-a8bf392e3c5c2661a520198e34fdf44cac2c81b9e3e6c1bdc975522a0ef8dd79.scope limit 536870912
t_s current anon file shmem file_dirty file_writeback oom oom_kill server
0 6213632 634880 1843200 0 0 0 0 0
none
2 116449280 5861376 102674432 32735232 16384 0 0 0
none
4 116224000 5861376 102674432 32735232 16384 0 0 0
none
6 116756480 5861376 103448576 33316864 208896 0 0 0
none
8 116756480 5861376 103448576 33316864 208896 0 0 0
none
10 116756480 5861376 103448576 33316864 208896 0 0 0
none
12 116752384 5861376 103448576 33316864 208896 0 0 0 starting
14 120184832 7606272 104153088 34021376 208896 0 0 0 starting
16 117919744 5861376 104153088 34021376 208896 0 0 0 starting
18 130686976 14036992 106934272 36507648 495616 0 0 0 starting
20 146673664 21311488 114876416 40083456 2437120 0 0 0 starting
22 166531072 32591872 121614336 46239744 3166208 0 0 0 starting
24 454078464 272326656 166793216 56201216 13225984 0 0 0 starting
26 193265664 6045696 178888704 63053824 8192 0 11 4 starting
28 192667648 6045696 178888704 63053824 8192 0 11 4 starting
30 195452928 6049792 181411840 64081920 200704 0 11 4 starting
32 195190784 6049792 181411840 64081920 200704 0 11 4 starting
34 212979712 34340864 172507136 66482176 208896 0 11 4 starting
36 471580672 271745024 181071872 66486272 5156864 0 11 4 starting
38 162111488 4861952 147709952 55767040 8192 0 14 5 starting
40 161918976 5906432 148791296 56827904 8192 0 14 5 starting
42 165904384 5910528 152109056 58159104 200704 0 14 5 starting
44 165388288 5910528 152109056 58159104 200704 0 14 5 starting
46 182964224 23851008 159481856 61259776 200704 0 14 5 starting
48 438480896 278683648 146595840 61829120 2732032 0 14 5 starting
50 359792640 246370304 99876864 73805824 4947968 0 14 5 starting
53 255332352 5885952 240635904 72232960 8192 0 22 7 starting
55 254775296 5885952 240635904 72232960 8192 0 22 7 starting
57 258347008 5894144 244019200 73588736 200704 0 22 7 starting
59 258334720 5894144 244019200 73588736 200704 0 22 7 starting
61 255868928 29564928 222052352 77332480 217088 0 22 7 starting
63 517988352 291504128 230723584 77332480 6975488 0 22 7 starting
65 168701952 5910528 155049984 57393152 8192 0 40 9 starting
67 170094592 5914624 156581888 57929728 200704 0 40 9 starting
69 172351488 5914624 158580736 58806272 200704 0 40 9 starting
71 172097536 5914624 158580736 58806272 200704 0 40 9 starting
73 184651776 18534400 152997888 62681088 217088 0 40 9 starting
75 470728704 304361472 153554944 62681088 2985984 0 40 9 starting
77 339730432 213073920 113496064 74084352 4775936 0 40 9 starting
79 243171328 5931008 228229120 70631424 8192 0 75 11 starting
81 242450432 5931008 228229120 70631424 8192 0 75 11 starting
83 246865920 5935104 231768064 72052736 200704 0 75 11 starting
85 246173696 5935104 231768064 72052736 200704 0 75 11 starting
87 246632448 21123072 239276032 75431936 200704 0 75 11 starting
89 494510080 255864832 208883712 75984896 2125824 0 75 11 starting
91 185876480 4780032 91947008 42823680 0 0 84 13 starting
94 185044992 5914624 171102208 59531264 8192 0 84 13 starting
96 189034496 5918720 174690304 60960768 200704 0 84 13 starting
98 188669952 5918720 174690304 60960768 200704 0 84 13 starting
100 200544256 22757376 166862848 64958464 208896 0 84 13 starting
102 437657600 232820736 160694272 64958464 2789376 0 84 13 starting
104 182882304 4390912 166637568 57622528 13885440 106496 85 14 starting
106 185749504 5951488 168521728 58683392 8192 0 85 14 starting
108 186433536 5939200 172118016 60121088 200704 0 85 14 starting
110 186056704 5939200 172118016 60121088 200704 0 85 14 starting
112 206336000 15704064 179773440 63533056 200704 0 85 14 starting
114 368390144 202031104 157089792 64176128 987136 0 85 14 starting
116 107118592 4620288 40927232 33148928 0 0 86 15 unhealthy
118 188727296 5931008 174809088 59457536 8192 0 86 15 starting
120 194523136 7696384 178446336 60903424 200704 0 86 15 starting
122 192417792 5935104 178446336 60903424 200704 0 86 15 starting
124 211374080 14573568 185888768 64356352 200704 0 86 15 starting
126 270864384 76816384 170430464 64991232 217088 0 86 15 starting
128 117084160 4132864 45834240 31596544 0 0 92 16 unhealthy
131 169476096 5922816 156000256 56057856 8192 0 92 16 starting
133 175673344 7692288 159670272 57520128 200704 0 92 16 starting
135 173199360 5926912 159670272 57520128 200704 0 92 16 starting
137 191426560 14352384 167092224 60981248 249856 0 92 16 starting
139 188084224 23441408 154877952 61616128 208896 0 92 16 starting
141 536674304 272166912 219480064 61616128 21614592 0 92 16 starting
143 171266048 5939200 157671424 56426496 8192 0 101 18 starting
145 177864704 7708672 161349632 57888768 200704 0 101 18 starting
147 175075328 5943296 161349632 57888768 200704 0 101 18 starting
149 175075328 5943296 161349632 57888768 200704 0 101 18 starting
151 190164992 23121920 156692480 62042112 217088 0 101 18 starting
153 506843136 280748032 223580160 62042112 21753856 0 101 18 starting
155 174882816 5939200 160727040 57368576 8192 0 114 20 starting
157 176590848 5943296 162406400 57937920 200704 0 114 20 starting
159 178151424 5943296 164446208 58847232 200704 0 114 20 starting
161 178151424 5943296 164446208 58847232 200704 0 114 20 starting
163 192356352 23154688 158621696 63016960 208896 0 114 20 starting
165 464658432 233472000 229064704 63016960 12582912 0 114 20 starting
167 349245440 441925632 81612800 77565952 8192 294912 114 20 starting
169 249909248 5951488 235110400 70230016 8192 0 121 21 starting
171 255496192 7720960 238862336 71725056 200704 0 121 21 starting
173 253460480 5955584 238862336 71725056 200704 0 121 21 starting
175 277422080 28557312 244768768 74366976 331776 0 121 21 starting
177 254685184 23474176 220454912 75911168 217088 0 121 21 starting
179 536805376 311521280 209747968 75911168 22024192 0 121 21 starting
181 243638272 4812800 204136448 66228224 0 0 124 24 starting
184 243412992 5951488 229199872 70049792 8192 0 124 24 starting
186 247652352 5955584 232951808 71544832 200704 0 124 24 starting
188
none
# cgroup gone at 188 s
# end 2026-09-30T13:48:23Z
@@ -0,0 +1,18 @@
up rc 0 Starting
Container immich-redis Starting
Container immich-postgres Starting
Container immich-machine-learning Started
Container immich-redis Started
Container immich-postgres Started
Container immich-postgres Waiting
Container immich-redis Waiting
Container immich-postgres Healthy
Container immich-redis Healthy
Container immich-server Starting
Container immich-server Started
settled True 223.3 {"immich-machine-learning": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-server": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
immich-machine-learning 172.22.0.3
immich-postgres 172.22.0.4
immich-redis 172.22.0.2
immich-server 172.22.0.5
@@ -0,0 +1,46 @@
# pgsample immich-postgres from 2026-09-30T13:48:25Z; host MemTotal 10485760 kB; cgroup cgroup2fs
# id d4f587de81893f9a24584887739d83f90512f8ab8a1209c4122656680f702334 cgroup /sys/fs/cgroup/system.slice/docker-d4f587de81893f9a24584887739d83f90512f8ab8a1209c4122656680f702334.scope limit 1073741824
t_s current anon file shmem file_dirty file_writeback oom oom_kill server
0 4501504 495616 1249280 0 0 0 0 0
none
2 102465536 5836800 88793088 32735232 20480 0 0 0
none
4 101990400 5836800 88793088 32735232 20480 0 0 0
none
6 102526976 5836800 89567232 33316864 212992 0 0 0
none
8 102518784 5836800 89567232 33316864 212992 0 0 0
none
10 102518784 5836800 89567232 33316864 212992 0 0 0
none
12 102518784 5836800 89567232 33316864 212992 0 0 0 starting
14 105312256 7577600 90271744 34021376 212992 0 0 0 starting
16 103419904 5836800 90271744 34021376 212992 0 0 0 starting
18 116457472 14352384 93356032 36753408 540672 0 0 0 starting
20 133894144 21782528 101740544 40378368 2650112 0 0 0 starting
22 152305664 32645120 107749376 46239744 3182592 0 0 0 starting
24 457068544 241168384 192339968 67588096 24621056 0 0 0 starting
26 750039040 423604224 304373760 87556096 17952768 0 0 0 starting
28 636817408 241168384 366137344 103231488 33632256 0 0 0 starting
31 759914496 220794880 512311296 119349248 10543104 0 0 0 starting
33 846663680 263983104 556077056 141385728 32464896 0 0 0 starting
35 875905024 293429248 556077056 141385728 32464896 0 0 0 starting
37 978141184 279293952 670142464 173228032 5722112 0 0 0 starting
39 988102656 250511360 708415488 177668096 10166272 0 0 0 starting
41 987983872 250511360 707833856 177668096 10166272 0 0 0 starting
43 987721728 250511360 707833856 177668096 10166272 0 0 0 healthy
45 987721728 250511360 707833856 177668096 10166272 0 0 0 healthy
47 987983872 250511360 707833856 177668096 10170368 0 0 0 healthy
49 987725824 250511360 707833856 177668096 10170368 0 0 0 healthy
51 987725824 250511360 707833856 177668096 10170368 0 0 0 healthy
53 992677888 250511360 712368128 179412992 10211328 0 0 0 healthy
55 992477184 250511360 712368128 179412992 10211328 0 0 0 healthy
57 992468992 250511360 712560640 179412992 10219520 0 0 0 healthy
59 992468992 250511360 712560640 179412992 10219520 0 0 0 healthy
61 992468992 250511360 712560640 179412992 10072064 0 0 0 healthy
63 992731136 250511360 712560640 179412992 10072064 0 0 0 healthy
65 992731136 250511360 712560640 179412992 10072064 0 0 0 healthy
67 1001156608 250511360 721006592 179412992 10072064 0 0 0 healthy
69 1001156608 250511360 721006592 179412992 1626112 0 0 0 healthy
72 1002729472 250511360 722341888 179412992 118784 0 0 0 healthy
# end 2026-09-30T13:49:38Z
@@ -0,0 +1,18 @@
up rc 0 Starting
Container immich-postgres Starting
Container immich-redis Starting
Container immich-redis Started
Container immich-machine-learning Started
Container immich-postgres Started
Container immich-redis Waiting
Container immich-postgres Waiting
Container immich-postgres Healthy
Container immich-redis Healthy
Container immich-server Starting
Container immich-server Started
settled True 31.4 {"immich-machine-learning": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-server": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
immich-machine-learning 172.22.0.3
immich-postgres 172.22.0.4
immich-redis 172.22.0.2
immich-server 172.22.0.5
@@ -0,0 +1,47 @@
# pgsample immich-postgres from 2026-09-30T13:50:22Z; host MemTotal 10485760 kB; cgroup cgroup2fs
# id b936e4b4e038d94d5948edfac2b54b2c2360bc3f78c2c4bb218a233f31a470c8 cgroup /sys/fs/cgroup/system.slice/docker-b936e4b4e038d94d5948edfac2b54b2c2360bc3f78c2c4bb218a233f31a470c8.scope limit 536870912
t_s current anon file shmem file_dirty file_writeback oom oom_kill server
0 2560000 606208 118784 0 8192 0 0 0
none
2 93626368 5857280 80457728 32735232 24576 0 0 0
none
4 93110272 5857280 80457728 32735232 24576 0 0 0
none
6 94642176 5857280 81231872 33316864 217088 0 0 0
none
8 93900800 5857280 81231872 33316864 217088 0 0 0
none
10 93900800 5857280 81231872 33316864 217088 0 0 0
none
12 93900800 5857280 81231872 33316864 208896 0 0 0 starting
14 97136640 7602176 81936384 34021376 208896 0 0 0 starting
16 94900224 5857280 81936384 34021376 208896 0 0 0 starting
18 94744576 5869568 81936384 34021376 208896 0 0 0 starting
20 121217024 18870272 92233728 39862272 2420736 0 0 0 starting
22 143450112 32649216 99414016 46239744 3182592 0 0 0 starting
24 462749696 306651136 147705856 58322944 15364096 0 0 0 starting
26 500043776 335605760 109142016 74182656 3956736 0 0 0 starting
28 410419200 269033472 122200064 83140608 3399680 0 0 0 starting
30 365846528 196878336 149299200 99708928 19365888 0 0 0 starting
32 479567872 219709440 236302336 125743104 16056320 0 0 0 starting
34 507215872 247312384 236371968 125812736 16056320 0 0 0 starting
36 495861760 209416192 262496256 157933568 48033792 0 0 0 starting
38 536686592 216231936 295948288 158142464 40546304 0 0 0 starting
40 536621056 216240128 296538112 158388224 40718336 0 0 0 starting
42 536690688 216281088 296693760 161148928 2543616 0 0 0 healthy
45 514514944 190377984 299999232 163323904 4050944 0 0 0 healthy
47 514658304 190377984 300077056 163393536 4050944 0 0 0 healthy
49 514719744 190377984 300154880 163471360 4050944 0 0 0 healthy
51 514588672 190377984 300224512 163540992 4059136 0 0 0 healthy
53 519225344 190377984 304861184 165359616 4132864 0 0 0 healthy
55 519286784 190377984 304943104 165441536 4132864 0 0 0 healthy
57 520093696 190377984 305049600 165515264 4165632 0 0 0 healthy
59 519491584 190377984 305123328 165588992 4169728 0 0 0 healthy
61 519557120 190377984 305192960 165658624 4169728 0 0 0 healthy
63 522244096 190377984 307802112 165728256 2555904 0 0 0 healthy
65 522297344 190377984 307875840 165801984 16384 0 0 0 healthy
67 522379264 190382080 307949568 165871616 16384 0 0 0 healthy
69 522444800 190382080 308019200 165941248 0 0 0 0 healthy
71 522518528 190382080 308097024 166019072 0 0 0 0 healthy
73 524410880 190382080 309719040 166670336 159744 0 0 0 healthy
# end 2026-09-30T13:51:36Z
@@ -0,0 +1,18 @@
up rc 0
Container immich-machine-learning Starting
Container immich-redis Starting
Container immich-machine-learning Started
Container immich-postgres Started
Container immich-redis Started
Container immich-redis Waiting
Container immich-postgres Waiting
Container immich-postgres Healthy
Container immich-redis Healthy
Container immich-server Starting
Container immich-server Started
settled True 31.5 {"immich-machine-learning": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-server": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
immich-machine-learning 172.23.0.2
immich-postgres 172.23.0.3
immich-redis 172.23.0.4
immich-server 172.23.0.5
@@ -0,0 +1,46 @@
# pgsample immich-postgres from 2026-09-30T13:52:15Z; host MemTotal 10485760 kB; cgroup cgroup2fs
# id c88d473c158587d8df5c84311be4981db63061afb35cb10a6c9666f820bda1e6 cgroup /sys/fs/cgroup/system.slice/docker-c88d473c158587d8df5c84311be4981db63061afb35cb10a6c9666f820bda1e6.scope limit 805306368
t_s current anon file shmem file_dirty file_writeback oom oom_kill server
0 3518464 499712 110592 0 0 0 0 0
none
2 102817792 5820416 89296896 32735232 32768 0 0 0
none
4 102080512 5820416 89296896 32735232 32768 0 0 0
none
6 102871040 5820416 90071040 33316864 225280 0 0 0
none
8 102871040 5820416 90071040 33316864 225280 0 0 0
none
10 102866944 5820416 90071040 33316864 225280 0 0 0
none
12 102866944 5820416 90071040 33316864 225280 0 0 0 starting
14 106520576 7561216 90775552 34021376 225280 0 0 0 starting
16 103956480 5820416 90775552 34021376 225280 0 0 0 starting
18 116760576 14331904 93892608 36769792 569344 0 0 0 starting
20 133640192 21467136 101834752 40255488 2551808 0 0 0 starting
22 152563712 32587776 108253184 46239744 3198976 0 0 0 starting
24 504225792 278409216 201789440 67801088 24850432 0 0 0 starting
26 736702464 432467968 267702272 82628608 9617408 0 0 0 starting
28 606572544 253501440 332288000 102838272 29827072 0 0 0 starting
30 590184448 211505152 357535744 118108160 44302336 0 0 0 starting
32 690651136 238161920 428756992 132456448 22421504 0 0 0 starting
34 720277504 252215296 444682240 140419072 30384128 0 0 0 starting
36 755605504 213606400 517816320 172163072 45232128 0 0 0 starting
38 755888128 172843008 557449216 175202304 34459648 0 0 0 starting
40 788381696 187961344 574865408 176709632 31891456 0 0 0 starting
42 788172800 187961344 574865408 176709632 31891456 0 0 0 healthy
44 788172800 187961344 574865408 176709632 17489920 0 0 0 healthy
46 802717696 187961344 588267520 176709632 712704 0 0 0 healthy
49 802467840 187961344 588267520 176709632 712704 0 0 0 healthy
51 801947648 187961344 588267520 176709632 712704 0 0 0 healthy
53 801312768 187961344 587792384 178454528 786432 0 0 0 healthy
55 801312768 187961344 587792384 178454528 786432 0 0 0 healthy
57 800047104 187961344 586514432 178454528 802816 0 0 0 healthy
59 800006144 187961344 586514432 178454528 806912 0 0 0 healthy
61 800006144 187961344 586514432 178454528 806912 0 0 0 healthy
63 800006144 187961344 586514432 178454528 806912 0 0 0 healthy
65 800006144 187961344 586514432 178454528 806912 0 0 0 healthy
67 799735808 187961344 586252288 178454528 806912 0 0 0 healthy
69 799735808 187961344 586252288 178454528 806912 0 0 0 healthy
71 799735808 187961344 586252288 178454528 806912 0 0 0 healthy
# end 2026-09-30T13:53:27Z
@@ -0,0 +1,18 @@
up rc 0 Starting
Container immich-postgres Starting
Container immich-redis Starting
Container immich-redis Started
Container immich-machine-learning Started
Container immich-postgres Started
Container immich-redis Waiting
Container immich-postgres Waiting
Container immich-postgres Healthy
Container immich-redis Healthy
Container immich-server Starting
Container immich-server Started
settled True 31.4 {"immich-machine-learning": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-server": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
immich-machine-learning 172.24.0.3
immich-postgres 172.24.0.4
immich-redis 172.24.0.2
immich-server 172.24.0.5
@@ -0,0 +1,46 @@
# pgsample immich-postgres from 2026-09-30T13:53:35Z; host MemTotal 10485760 kB; cgroup cgroup2fs
# id f66e8eeb026e108a5d00b6bebbf50b0a18a5cd180711856aaee98ff743d91742 cgroup /sys/fs/cgroup/system.slice/docker-f66e8eeb026e108a5d00b6bebbf50b0a18a5cd180711856aaee98ff743d91742.scope limit 805306368
t_s current anon file shmem file_dirty file_writeback oom oom_kill server
0 4030464 491520 77824 0 0 0 0 0
none
2 97144832 5824512 84049920 32735232 16384 0 0 0
none
4 97144832 5824512 84049920 32735232 16384 0 0 0
none
6 97730560 5824512 84824064 33316864 208896 0 0 0
none
8 97484800 5824512 84824064 33316864 208896 0 0 0
none
10 97480704 5824512 84824064 33316864 208896 0 0 0
none
13 97480704 5824512 84824064 33316864 208896 0 0 0 starting
15 100724736 7565312 85528576 34021376 208896 0 0 0 starting
17 98422784 5824512 85528576 34021376 208896 0 0 0 starting
19 111255552 13529088 88170496 36384768 487424 0 0 0 starting
21 128704512 21528576 97234944 40280064 2560000 0 0 0 starting
23 147304448 32423936 103718912 46239744 3182592 0 0 0 starting
25 477220864 293474304 172662784 63893504 20926464 0 0 0 starting
27 699215872 413667328 256090112 83275776 761856 0 0 0 starting
29 587501568 203767808 355733504 102617088 20127744 0 0 0 starting
31 549412864 193851392 334761984 118222848 35733504 0 0 0 starting
33 685244416 229998592 432504832 132157440 24576 0 0 0 starting
35 729120768 209584128 496205824 164007936 31875072 0 0 0 starting
37 741363712 215187456 502263808 166940672 35004416 0 0 0 starting
39 775114752 220348416 541757440 176340992 21962752 0 0 0 starting
41 772591616 203333632 544772096 177848320 23470080 0 0 0 starting
43 787009536 203333632 558583808 177848320 23470080 0 0 0 healthy
45 786780160 203333632 558583808 177848320 9662464 0 0 0 healthy
47 786817024 203333632 558583808 177848320 9662464 0 0 0 healthy
49 787050496 203333632 558583808 177848320 9662464 0 0 0 healthy
51 786784256 203333632 558583808 177848320 9662464 0 0 0 healthy
53 791797760 203333632 563372032 179593216 9736192 0 0 0 healthy
55 791580672 203333632 563372032 179593216 9736192 0 0 0 healthy
57 791777280 203333632 563564544 179593216 9928704 0 0 0 healthy
60 791781376 203333632 563564544 179593216 9748480 0 0 0 healthy
62 791781376 203333632 563564544 179593216 9748480 0 0 0 healthy
64 791781376 203333632 563564544 179593216 9748480 0 0 0 healthy
66 791781376 203333632 563564544 179593216 9748480 0 0 0 healthy
68 791781376 203333632 563564544 179593216 9748480 0 0 0 healthy
70 796876800 203333632 568520704 179593216 9748480 0 0 0 healthy
72 796876800 203333632 568520704 179593216 1622016 0 0 0 healthy
# end 2026-09-30T13:54:47Z
@@ -0,0 +1,18 @@
up rc 0 Starting
Container immich-redis Starting
Container immich-postgres Starting
Container immich-machine-learning Started
Container immich-redis Started
Container immich-postgres Started
Container immich-postgres Waiting
Container immich-redis Waiting
Container immich-postgres Healthy
Container immich-redis Healthy
Container immich-server Starting
Container immich-server Started
settled True 31.4 {"immich-machine-learning": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-server": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
immich-machine-learning 172.25.0.2
immich-postgres 172.25.0.4
immich-redis 172.25.0.3
immich-server 172.25.0.5
@@ -0,0 +1,40 @@
# pgsample immich-postgres from 2026-09-30T13:56:14Z; host MemTotal 10485760 kB; cgroup cgroup2fs
# id a8ba4694e78879dffb11f6519f32583b38aa42b426c1db30ce09e83133a06de1 cgroup /sys/fs/cgroup/system.slice/docker-a8ba4694e78879dffb11f6519f32583b38aa42b426c1db30ce09e83133a06de1.scope limit 805306368
t_s current anon file shmem file_dirty file_writeback oom oom_kill server
0 99041280 5840896 86228992 32735232 28672 0 0 0
none
2 100315136 5840896 87003136 33316864 221184 0 0 0
none
4 99840000 5840896 87003136 33316864 221184 0 0 0
none
6 99831808 5840896 87003136 33316864 208896 0 0 0 starting
8 99831808 5840896 87003136 33316864 208896 0 0 0 starting
10 101015552 5840896 87707648 34021376 208896 0 0 0 starting
12 100806656 5840896 87707648 34021376 208896 0 0 0 starting
14 121438208 16936960 93958144 38240256 1372160 0 0 0 starting
16 146092032 33230848 101330944 42528768 2809856 0 0 0 starting
18 149417984 32428032 105390080 46239744 3182592 0 0 0 starting
20 463790080 242356224 200040448 68030464 25063424 0 0 0 starting
22 639389696 338563072 258490368 82063360 10682368 0 0 0 starting
24 624328704 230424576 363819008 103755776 32374784 0 0 0 starting
26 555167744 175128576 358416384 119689216 29499392 0 0 0 starting
28 625238016 195297280 406982656 127922176 17735680 0 0 0 starting
30 666513408 172912640 470716416 159789056 49602560 0 0 0 starting
32 721539072 178913280 518299648 162729984 2957312 0 0 0 starting
34 797184000 212799488 559214592 176775168 16777216 0 0 0 starting
36 779931648 192524288 562229248 178282496 18268160 0 0 0 healthy
38 783175680 194924544 562692096 178511872 18497536 0 0 0 healthy
40 782909440 194924544 562692096 178511872 18505728 0 0 0 healthy
42 789872640 194924544 569335808 178511872 6651904 0 0 0 healthy
45 789741568 194924544 569335808 178511872 8192 0 0 0 healthy
47 788623360 194924544 569049088 178511872 0 0 0 0 healthy
49 773562368 194924544 554967040 180256768 0 0 0 0 healthy
51 735920128 194924544 518451200 180256768 196608 0 0 0 healthy
53 725028864 194924544 507219968 180256768 0 0 0 0 healthy
55 698380288 194924544 480874496 180256768 0 0 0 0 healthy
57 649609216 194924544 433532928 180256768 0 0 0 0 healthy
59 641691648 194924544 425725952 180256768 0 0 0 0 healthy
61 634781696 194924544 419291136 180256768 0 0 0 0 healthy
63 605728768 194924544 390717440 180256768 0 0 0 0 healthy
65 592961536 194924544 379068416 180256768 4096 0 0 0 healthy
# end 2026-09-30T13:57:19Z
@@ -0,0 +1,164 @@
[13:56:08] scratch drive folders cleared before FROM (R-656): ['/srv/felhom-gate/hdd/appdata/immich', '/srv/felhom-gate/hdd/userdata/media/photos']
[13:56:08] MV-immich: deploying immich at FROM {'immich-server': 'ghcr.io/immich-app/immich-server:v3.2.2', 'immich-machine-learning': 'ghcr.io/immich-app/immich-machine-learning:v3.2.2', 'immich-postgres': 'ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0', 'immich-redis': 'redis:7-alpine'}
[13:56:51] FROM settled=True in 31.4s :: {"immich-machine-learning": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-server": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[13:56:51] fixture: the BOX walk's own (Immich), through upgrade_boxport
[13:56:52] immich: seeded album drillalbumf96a1da1
[13:56:52] immich: readback found=True (http 200, control passed)
[13:56:52] C1 (seed reads back BEFORE): True
[13:56:52] MV-immich: swapping to TO {'immich-server': 'ghcr.io/immich-app/immich-server:v3.2.4', 'immich-machine-learning': 'ghcr.io/immich-app/immich-machine-learning:v3.2.4', 'immich-postgres': 'ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0', 'immich-redis': 'redis:7-alpine'}
[13:57:55] TO up -d rc=0
[13:58:27] TO settled=True in 31.7s :: {"immich-machine-learning": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-server": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[13:58:27] engine state immich-postgres: 16
[13:58:27] migration lines observed: 6
[13:58:28] immich: readback found=True (http 200, control passed)
[13:58:28] RESULT (seed reads back AFTER): True
[13:58:28] files_may_change: the bind-mounted tree changed under ['/srv/felhom-gate/hdd/appdata/immich']
[13:58:28] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:2283
[13:58:43] + 15s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=748M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=1116M/2048M peak=1257M kills=0 rs=0 reqs=304
[13:58:58] + 30s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=748M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=1117M/2048M peak=1257M kills=0 rs=0 reqs=604
[13:59:14] + 46s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=748M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=1084M/2048M peak=1257M kills=0 rs=0 reqs=904
[13:59:29] + 61s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=749M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=1084M/2048M peak=1257M kills=0 rs=0 reqs=1204
[13:59:44] + 76s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=749M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=1082M/2048M peak=1257M kills=0 rs=0 reqs=1504
[13:59:59] + 91s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=749M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=952M/2048M peak=1257M kills=0 rs=0 reqs=1808
[14:00:14] + 106s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=749M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=702M/2048M peak=1257M kills=0 rs=0 reqs=2108
[14:00:30] + 122s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=749M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=704M/2048M peak=1257M kills=0 rs=0 reqs=2408
[14:00:45] + 137s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=749M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=703M/2048M peak=1257M kills=0 rs=0 reqs=2712
[14:01:00] + 152s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=749M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=703M/2048M peak=1257M kills=0 rs=0 reqs=3012
[14:01:15] + 167s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=753M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=704M/2048M peak=1257M kills=0 rs=0 reqs=3312
[14:01:30] + 182s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=765M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=702M/2048M peak=1257M kills=0 rs=0 reqs=3612
[14:01:46] + 198s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=767M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=670M/2048M peak=1257M kills=0 rs=0 reqs=3912
[14:02:01] + 213s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=764M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=669M/2048M peak=1257M kills=0 rs=0 reqs=4216
[14:02:16] + 228s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=767M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=670M/2048M peak=1257M kills=0 rs=0 reqs=4516
[14:02:31] + 243s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=766M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=670M/2048M peak=1257M kills=0 rs=0 reqs=4816
[14:02:46] + 258s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=767M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=671M/2048M peak=1257M kills=0 rs=0 reqs=5116
[14:03:01] + 273s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=765M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=671M/2048M peak=1257M kills=0 rs=0 reqs=5416
[14:03:17] + 289s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=767M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=671M/2048M peak=1257M kills=0 rs=0 reqs=5716
[14:03:32] + 304s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=765M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=671M/2048M peak=1257M kills=0 rs=0 reqs=6016
[14:03:47] + 319s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=764M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=672M/2048M peak=1257M kills=0 rs=0 reqs=6320
[14:04:02] + 334s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=766M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=673M/2048M peak=1257M kills=0 rs=0 reqs=6620
[14:04:17] + 349s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=767M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=673M/2048M peak=1257M kills=0 rs=0 reqs=6920
[14:04:33] + 364s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=764M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=674M/2048M peak=1257M kills=0 rs=0 reqs=7220
[14:04:48] + 380s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=767M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=675M/2048M peak=1257M kills=0 rs=0 reqs=7520
[14:05:03] + 395s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=763M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=675M/2048M peak=1257M kills=0 rs=0 reqs=7820
[14:05:18] + 410s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=763M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=676M/2048M peak=1257M kills=0 rs=0 reqs=8124
[14:05:33] + 425s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=764M/768M peak=768M kills=0 rs=0 immich-redis=7M/128M peak=9M kills=0 rs=0 immich-server=677M/2048M peak=1257M kills=0 rs=0 reqs=8424
[14:05:48] + 440s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=676M/2048M peak=1257M kills=0 rs=0 reqs=8724
[14:06:04] + 456s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=676M/2048M peak=1257M kills=0 rs=0 reqs=9024
[14:06:19] + 471s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=676M/2048M peak=1257M kills=0 rs=0 reqs=9324
[14:06:34] + 486s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=677M/2048M peak=1257M kills=0 rs=0 reqs=9628
[14:06:49] + 501s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=679M/2048M peak=1257M kills=0 rs=0 reqs=9928
[14:07:04] + 516s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=680M/2048M peak=1257M kills=0 rs=0 reqs=10228
[14:07:20] + 532s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=680M/2048M peak=1257M kills=0 rs=0 reqs=10528
[14:07:35] + 547s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=681M/2048M peak=1257M kills=0 rs=0 reqs=10828
[14:07:50] + 562s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=681M/2048M peak=1257M kills=0 rs=0 reqs=11128
[14:08:05] + 577s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=681M/2048M peak=1257M kills=0 rs=0 reqs=11432
[14:08:20] + 592s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=682M/2048M peak=1257M kills=0 rs=0 reqs=11732
[14:08:36] + 608s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=684M/2048M peak=1257M kills=0 rs=0 reqs=12032
[14:08:36] memory watch: killed=False tight=[] requests=12032 codes={'200': 12032}
[14:08:36] MV-immich: ABORT — putting the FROM images back
[14:09:09] immich: readback found=True (http 200, control passed)
[14:09:09] ABORT: app came back in 31.5s; data present=True
{
"harness_version": 4,
"edge": "MV-immich",
"app": "immich",
"note": "night 2026-09-23 within-a-major move: immich-server=ghcr.io/immich-app/immich-server:v3.2.4, immich-machine-learning=ghcr.io/immich-app/immich-machine-learning:v3.2.4",
"from": {
"immich-server": "ghcr.io/immich-app/immich-server:v3.2.2",
"immich-machine-learning": "ghcr.io/immich-app/immich-machine-learning:v3.2.2",
"immich-postgres": "ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0",
"immich-redis": "redis:7-alpine"
},
"to": {
"immich-server": "ghcr.io/immich-app/immich-server:v3.2.4",
"immich-machine-learning": "ghcr.io/immich-app/immich-machine-learning:v3.2.4",
"immich-postgres": "ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0",
"immich-redis": "redis:7-alpine"
},
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"migration_observed": "\u001b[2Kimmich-server | \u001b[32m[Nest] 7 - \u001b[39m09/30/2026, 3:58:04 PM \u001b[32m LOG\u001b[39m \u001b[33m[Microservices:DatabaseRepository]\u001b[39m \u001b[32mRunning migrations\u001b[39m",
"abort": "starts-and-serves",
"abort_detail": null,
"engine_state_after": {
"immich-postgres": {
"image": "ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0",
"probe": "datadir major version",
"answer": "16",
"probe_rc": 0
}
},
"memory": {
"soak_s": 607.7,
"requested_s": 600,
"requests": 12032,
"codes": {
"200": 12032
},
"first_kill": null,
"containers": {
"immich-machine-learning": {
"limit": 1610612736,
"peak": 193114112,
"peak_pct": 0.12,
"anon_peak_sampled": 164626432,
"anon_peak_pct": 0.102,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
},
"immich-postgres": {
"limit": 805306368,
"peak": 805437440,
"peak_pct": 1.0,
"anon_peak_sampled": 192827392,
"anon_peak_pct": 0.239,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
},
"immich-redis": {
"limit": 134217728,
"peak": 10223616,
"peak_pct": 0.076,
"anon_peak_sampled": 3981312,
"anon_peak_pct": 0.03,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
},
"immich-server": {
"limit": 2147483648,
"peak": 1318445056,
"peak_pct": 0.614,
"anon_peak_sampled": 1097105408,
"anon_peak_pct": 0.511,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
}
},
"unmeasured": [],
"load": "reached"
},
"marks": [
"files_may_change"
],
"duration_s": 31.7,
"measured_at": "2026-09-30T14:09:09Z",
"evidence": "evidence/MV-immich",
"scratch_cleared": [
"/srv/felhom-gate/hdd/appdata/immich",
"/srv/felhom-gate/hdd/userdata/media/photos"
],
"files_changed": [
"/srv/felhom-gate/hdd/appdata/immich"
],
"total_s": 780.5
}
@@ -0,0 +1,26 @@
{
"immich-machine-learning": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
},
"immich-postgres": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
},
"immich-redis": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
},
"immich-server": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
}
}
@@ -0,0 +1,575 @@
immich-machine-learning | [09/30/26 16:08:39] INFO  Starting gunicorn 25.3.0
immich-machine-learning | [09/30/26 16:08:39] INFO  Listening at: http://[::]:3003 (13)
immich-machine-learning | [09/30/26 16:08:39] INFO  Using worker: immich_ml.config.CustomUvicornWorker
immich-machine-learning | [09/30/26 16:08:39] INFO  Booting worker with pid: 19
immich-machine-learning | [09/30/26 16:08:40] INFO  Started server process [19]
immich-machine-learning | [09/30/26 16:08:40] INFO  Waiting for application startup.
immich-machine-learning | [09/30/26 16:08:40] INFO  Created in-memory cache with unloading after 300s
immich-machine-learning |   of inactivity.
immich-machine-learning | [09/30/26 16:08:40] INFO  Initialized request thread pool with 8 threads.
immich-machine-learning | [09/30/26 16:08:40] INFO  Application startup complete.
immich-postgres | Using SSD storage
immich-postgres | The files belonging to this database system will be owned by user "postgres".
immich-postgres | This user must also own the server process.
immich-postgres |
immich-postgres | The database cluster will be initialized with locale "en_US.utf8".
immich-postgres | The default database encoding has accordingly been set to "UTF8".
immich-postgres | The default text search configuration will be set to "english".
immich-postgres |
immich-postgres | Data page checksums are enabled.
immich-postgres |
immich-postgres | fixing permissions on existing directory /var/lib/postgresql/data ... ok
immich-postgres | creating subdirectories ... ok
immich-postgres | selecting dynamic shared memory implementation ... posix
immich-postgres | selecting default max_connections ... 100
immich-postgres | selecting default shared_buffers ... 128MB
immich-postgres | selecting default time zone ... Europe/Budapest
immich-postgres | creating configuration files ... ok
immich-postgres | running bootstrap script ... ok
immich-postgres | performing post-bootstrap initialization ... ok
immich-postgres | syncing data to disk ... ok
immich-postgres |
immich-postgres |
immich-postgres | Success. You can now start the database server using:
immich-postgres |
immich-postgres | pg_ctl -D /var/lib/postgresql/data -l logfile start
immich-postgres |
immich-postgres | initdb: warning: enabling "trust" authentication for local connections
immich-postgres | initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
immich-postgres | 2026-09-30 13:56:10.468 GMT [49] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
immich-postgres | 2026-09-30 13:56:10.469 GMT [49] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
immich-postgres | waiting for server to start....2026-09-30 13:56:10.509 GMT [54] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
immich-postgres | 2026-09-30 13:56:10.509 GMT [54] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
immich-postgres | 2026-09-30 15:56:10.547 CEST [54] LOG: starting PostgreSQL 16.10 (Debian 16.10-1.pgdg12+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit
immich-postgres | 2026-09-30 15:56:10.550 CEST [54] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
immich-postgres | 2026-09-30 15:56:10.562 CEST [57] LOG: database system was shut down at 2026-09-30 15:56:10 CEST
immich-postgres | 2026-09-30 15:56:10.572 CEST [54] LOG: database system is ready to accept connections
immich-postgres | done
immich-postgres | server started
immich-postgres | CREATE DATABASE
immich-postgres |
immich-postgres |
immich-postgres | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
immich-postgres |
immich-postgres | waiting for server to shut down...2026-09-30 15:56:10.841 CEST [54] LOG: received fast shutdown request
immich-postgres | .2026-09-30 15:56:10.846 CEST [54] LOG: aborting any active transactions
immich-postgres | 2026-09-30 15:56:10.849 CEST [54] LOG: background worker "logical replication launcher" (PID 63) exited with exit code 1
immich-postgres | 2026-09-30 15:56:10.852 CEST [55] LOG: shutting down
immich-postgres | 2026-09-30 15:56:10.855 CEST [55] LOG: checkpoint starting: shutdown immediate
immich-postgres | 2026-09-30 15:56:10.943 CEST [55] LOG: checkpoint complete: wrote 922 buffers (1.4%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.026 s, sync=0.051 s, total=0.091 s; sync files=301, longest=0.021 s, average=0.001 s; distance=1672 kB, estimate=1672 kB; lsn=0/18CED10, redo lsn=0/18CED10
immich-postgres | 2026-09-30 15:56:10.967 CEST [54] LOG: database system is shut down
immich-postgres | done
immich-server | Initializing Immich v3.2.2
immich-server | Detected CPU Cores: 8
immich-server | (node:7) ExperimentalWarning: WASI is an experimental feature and might change at any time
immich-server | (Use `node --trace-warnings ...` to show where the warning was created)
immich-server | Starting api worker
immich-server | Starting microservices worker
immich-server | (node:7) ExperimentalWarning: WASI is an experimental feature and might change at any time
immich-server | (Use `node --trace-warnings ...` to show where the warning was created)
immich-server | (node:29) ExperimentalWarning: WASI is an experimental feature and might change at any time
immich-server | (Use `node --trace-warnings ...` to show where the warning was created)
immich-server | [Nest] 7 - 09/30/2026, 4:08:44 PM  LOG [Microservices:WebsocketRepository] Initialized websocket server
immich-server | [Nest] 7 - 09/30/2026, 4:08:45 PM  LOG [Microservices:DatabaseRepository] targetLists=1, current=1 for clip_index of 0 rows
immich-server | [Nest] 7 - 09/30/2026, 4:08:45 PM  LOG [Microservices:DatabaseRepository] targetLists=1, current=1 for face_index of 0 rows
immich-server | [Nest] 7 - 09/30/2026, 4:08:45 PM  LOG [Microservices:DatabaseRepository] Running migrations
immich-server | [Nest] 7 - 09/30/2026, 4:08:45 PM  LOG [Microservices:DatabaseRepository] Finished running migrations
immich-server | [Nest] 7 - 09/30/2026, 4:08:45 PM  LOG [Microservices:DatabaseService] Checking for schema drift
immich-server | [Nest] 7 - 09/30/2026, 4:08:45 PM  LOG [Microservices:DatabaseService] No schema drift detected
immich-server | [Nest] 7 - 09/30/2026, 4:08:45 PM  LOG [Microservices:StorageService] Verifying system mount folder checks, current state: {"mountChecks":{"thumbs":true,"upload":true,"backups":true,"library":true,"profile":true,"encoded-video":true}}
immich-redis | 1:C 30 Sep 2026 15:56:09.474 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
immich-server | [Nest] 7 - 09/30/2026, 4:08:45 PM  LOG [Microservices:StorageService] Successfully verified system mount folder checks
immich-redis | 1:C 30 Sep 2026 15:56:09.474 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
immich-redis | 1:C 30 Sep 2026 15:56:09.474 * Redis version=7.4.11, bits=64, commit=00000000, modified=0, pid=1, just started
immich-redis | 1:C 30 Sep 2026 15:56:09.474 * Configuration loaded
immich-redis | 1:M 30 Sep 2026 15:56:09.475 * monotonic clock: POSIX clock_gettime
immich-redis | 1:M 30 Sep 2026 15:56:09.476 * Running mode=standalone, port=6379.
immich-postgres | server stopped
immich-postgres |
immich-postgres | PostgreSQL init process complete; ready for start up.
immich-postgres |
immich-postgres | 2026-09-30 13:56:11.061 GMT [1] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
immich-postgres | 2026-09-30 13:56:11.061 GMT [1] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
immich-postgres | 2026-09-30 15:56:11.106 CEST [1] LOG: starting PostgreSQL 16.10 (Debian 16.10-1.pgdg12+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit
immich-postgres | 2026-09-30 15:56:11.107 CEST [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
immich-postgres | 2026-09-30 15:56:11.107 CEST [1] LOG: listening on IPv6 address "::", port 5432
immich-postgres | 2026-09-30 15:56:11.116 CEST [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
immich-postgres | 2026-09-30 15:56:11.126 CEST [73] LOG: database system was shut down at 2026-09-30 15:56:10 CEST
immich-postgres | 2026-09-30 15:56:11.138 CEST [1] LOG: database system is ready to accept connections
immich-postgres | 2026-09-30 15:56:23.191 CEST [88] ERROR: relation "system_metadata" does not exist at character 21
immich-redis | 1:M 30 Sep 2026 15:56:09.476 * Server initialized
immich-postgres | 2026-09-30 15:56:23.191 CEST [88] STATEMENT: select "value" from "system_metadata" where "key" = $1
immich-server | [Nest] 7 - 09/30/2026, 4:08:45 PM  LOG [Microservices:MetadataService] Bootstrapping metadata service
immich-postgres | 2026-09-30 15:56:41.253 CEST [131] LOG: skipping vacuum of "geodata_places" --- lock not available
immich-server | [Nest] 7 - 09/30/2026, 4:08:45 PM  LOG [Microservices:MetadataService] Initializing metadata service
immich-redis | 1:M 30 Sep 2026 15:56:09.480 * Creating AOF base file appendonly.aof.1.base.rdb on server start
immich-redis | 1:M 30 Sep 2026 15:56:09.486 * Creating AOF incr file appendonly.aof.1.incr.aof on server start
immich-redis | 1:M 30 Sep 2026 15:56:09.486 * Ready to accept connections tcp
immich-server | [Nest] 7 - 09/30/2026, 4:08:45 PM  LOG [Microservices:MapRepository] Initializing metadata repository
immich-redis | 1:M 30 Sep 2026 16:01:10.066 * 100 changes in 300 seconds. Saving...
immich-server | [Nest] 29 - 09/30/2026, 4:08:45 PM  LOG [Api:WebsocketRepository] Initialized websocket server
immich-server | [Nest] 7 - 09/30/2026, 4:08:46 PM  LOG [Microservices:MapRepository] Starting geodata import
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:DatabaseRepository] targetLists=1, current=1 for clip_index of 0 rows
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:DatabaseRepository] targetLists=1, current=1 for face_index of 0 rows
immich-postgres | 2026-09-30 16:01:11.227 CEST [71] LOG: checkpoint starting: time
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:DatabaseRepository] Running migrations
immich-postgres | 2026-09-30 16:05:41.218 CEST [71] LOG: checkpoint complete: wrote 16891 buffers (25.8%); 0 WAL file(s) added, 0 removed, 17 recycled; write=269.831 s, sync=0.088 s, total=269.991 s; sync files=750, longest=0.013 s, average=0.001 s; distance=270416 kB, estimate=270416 kB; lsn=0/120E2DE0, redo lsn=0/120E2DA8
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:DatabaseRepository] Finished running migrations
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:DatabaseService] Checking for schema drift
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  WARN [Api:DatabaseService] Detected schema drift. For more information, see https://docs.immich.app/errors#schema-drift or run `immich-admin schema-check`
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  WARN [Api:DatabaseService]  - The index "geodata_places"."idx_geodata_places_name" is missing and needs to be created
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  WARN [Api:DatabaseService]  - The index "geodata_places"."idx_geodata_places_admin2_name" is missing and needs to be created
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  WARN [Api:DatabaseService]  - The index "geodata_places"."idx_geodata_places_admin1_name" is missing and needs to be created
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  WARN [Api:DatabaseService]  - The index "geodata_places"."idx_geodata_places_alternate_names" is missing and needs to be created
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  WARN [Api:DatabaseService]  - The constraint "geodata_places"."geodata_places_pkey" (primary-key) is missing and needs to be created
immich-redis | 1:M 30 Sep 2026 16:01:10.066 * Background saving started by pid 190
immich-redis | 190:C 30 Sep 2026 16:01:10.074 * DB saved on disk
immich-redis | 190:C 30 Sep 2026 16:01:10.075 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB
immich-redis | 1:M 30 Sep 2026 16:01:10.167 * Background saving terminated with success
immich-redis | 1:M 30 Sep 2026 16:06:11.040 * 100 changes in 300 seconds. Saving...
immich-redis | 1:M 30 Sep 2026 16:06:11.041 * Background saving started by pid 371
immich-redis | 371:C 30 Sep 2026 16:06:11.049 * DB saved on disk
immich-redis | 371:C 30 Sep 2026 16:06:11.050 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB
immich-redis | 1:M 30 Sep 2026 16:06:11.142 * Background saving terminated with success
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:StorageService] Verifying system mount folder checks, current state: {"mountChecks":{"thumbs":true,"upload":true,"backups":true,"library":true,"profile":true,"encoded-video":true}}
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:StorageService] Successfully verified system mount folder checks
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:ServerService] Feature Flags: {
immich-server | "smartSearch": true,
immich-server | "facialRecognition": true,
immich-server | "duplicateDetection": true,
immich-server | "map": true,
immich-server | "reverseGeocoding": true,
immich-server | "importFaces": false,
immich-server | "sidecar": true,
immich-server | "search": true,
immich-server | "trash": true,
immich-server | "oauth": false,
immich-server | "oauthAutoLaunch": false,
immich-server | "ocr": true,
immich-server | "passwordLogin": true,
immich-server | "configFile": false,
immich-server | "email": false,
immich-server | "realtimeTranscoding": false
immich-server | }
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:SystemConfigService] LogLevel=log (set via system config)
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:NestFactory] Starting Nest application...
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:InstanceLoader] BullModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:InstanceLoader] ClsModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:InstanceLoader] ClsCommonModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:InstanceLoader] OpenTelemetryModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:InstanceLoader] KyselyModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:InstanceLoader] OpenTelemetryCoreModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:InstanceLoader] DiscoveryModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:InstanceLoader] ClsRootModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:InstanceLoader] ClsPluginsModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:InstanceLoader] ScheduleModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:InstanceLoader] BullModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:InstanceLoader] BullModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:InstanceLoader] ApiModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  WARN [Api:LegacyRouteConverter] Unsupported route path: "/api/*". In previous versions, the symbols ?, *, and + were used to denote optional or repeating path parameters. The latest version of "path-to-regexp" now requires the use of named parameters. For example, instead of using a route like /users/* to capture all routes starting with "/users", you should use /users/*path. For more details, refer to the migration guide. Attempting to auto-convert to "/api/{*path}"...
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] ApiKeyController {/api/api-keys}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys/me, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys/:id/rotate, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] ActivityController {/api/activities}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/activities, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/activities, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/activities/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/activities/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] AlbumController {/api/albums}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/albums, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/albums, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id/map-markers, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id/assets, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/assets, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id/assets, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id/users, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id/user/:userId, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id/user/:userId, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] AppController {/api}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/.well-known/immich, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/custom.css, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] AssetController {/api/assets}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/jobs, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/copy, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/metadata, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/metadata, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/metadata, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/ocr, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/metadata, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/metadata/:key, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/metadata/:key, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/edits, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/edits, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/edits, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] AssetFilesController {/api/asset-files}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/asset-files, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/asset-files/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/asset-files/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/asset-files/:id/download, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] AssetMediaController {/api/assets}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/original, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/thumbnail, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/video/playback, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/bulk-upload-check, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] AuthController {/api/auth}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/login, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/admin-sign-up, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/validateToken, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/change-password, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/logout, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/status, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/pin-code, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/pin-code, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/pin-code, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/session/unlock, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/session/lock, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] AuthAdminController {/api/admin/auth}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/auth/unlink-all, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] ClusterGroupController {/api/cluster-groups}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/requests, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/requests/:id/accept, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/requests/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/:id/requests, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/:id/users, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/:id/requests, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/:id/regenerate-people, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/:id/leave, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] ConfigUserController {/api/config}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/config, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/config/defaults, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] ConfigAdminController {/api/admin/config}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/config, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/config/defaults, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/config, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] ConfigPublicController {/api/public/config}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/public/config, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/public/config/defaults, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] DatabaseBackupController {/api/admin/database-backups}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/database-backups, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/database-backups/:filename, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/database-backups, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/database-backups/start-restore, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/database-backups/upload, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] DownloadController {/api/download}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/download/info, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/download/archive, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] DuplicateController {/api/duplicates}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/duplicates, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/duplicates, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/duplicates/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/duplicates/resolve, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] FaceController {/api/faces}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/faces, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/faces, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/faces/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/faces/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] IntegrityAdminController {/api/admin/integrity}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/integrity/summary, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/integrity/report, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/integrity/report/:id/file, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/integrity/report/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/integrity/report/:type/csv, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] JobController {/api/jobs}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/jobs, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/jobs, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/jobs/:name, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] LibraryController {/api/libraries}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries/:id/validate, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries/:id/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries/:id/scan, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] MaintenanceController {/api/admin/maintenance}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/maintenance/status, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/maintenance/detect-install, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/maintenance/login, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/maintenance, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] MapController {/api/map}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/map/markers, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/map/reverse-geocode, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] MemoryController {/api/memories}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/memories, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/memories, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/memories/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/memories/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/memories/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/memories/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/memories/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/memories/:id/assets, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/memories/:id/assets, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] NotificationController {/api/notifications}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/notifications, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/notifications, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/notifications, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/notifications/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/notifications/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/notifications/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] NotificationAdminController {/api/admin/notifications}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/notifications, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/notifications/test-email, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/notifications/templates/:name, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] OAuthController {/api/oauth}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/oauth/mobile-redirect, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/oauth/authorize, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/oauth/callback, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/oauth/link, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/oauth/unlink, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/oauth/backchannel-logout, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] PartnerController {/api/partners}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/partners, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/partners, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/partners/:id, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/partners/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/partners/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] PersonController {/api/people}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/people, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/people, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/people, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/people, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id/thumbnail, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id/reassign, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/people/merge, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id/merge, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] PluginController {/api/plugins}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/plugins, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/plugins/methods, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/plugins/templates, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/plugins/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] QueueController {/api/queues}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/queues, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/queues/:name, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/queues/:name, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/queues/:name/jobs, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/queues/:name/jobs, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] SearchController {/api/search}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/search/metadata, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/search/statistics, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/search/random, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/search/large-assets, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/search/smart, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/search/explore, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/search/person, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/search/places, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/search/cities, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/search/suggestions, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] ServerController {/api/server}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/server/about, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/server/apk-links, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/server/storage, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/server/ping, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/server/version, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/server/version-history, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/server/features, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/server/config, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/server/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/server/media-types, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/server/license, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/server/license, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/server/license, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/server/version-check, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] SessionController {/api/sessions}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/sessions, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/sessions, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/sessions, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/sessions/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/sessions/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/sessions/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/sessions/:id/lock, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] SharedLinkController {/api/shared-links}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links/login, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links/me, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links/:id/assets, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links/:id/assets, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] StackController {/api/stacks}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks/:id/assets/:assetId, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] SyncController {/api/sync}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/sync/stream, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/sync/ack, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/sync/ack, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/sync/ack, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] SystemConfigController {/api/system-config}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/system-config, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/system-config/defaults, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/system-config, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/system-config/storage-template-options, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] SystemMetadataController {/api/system-metadata}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/system-metadata/admin-onboarding, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/system-metadata/admin-onboarding, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/system-metadata/reverse-geocoding-state, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/system-metadata/version-check-state, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] TagController {/api/tags}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/tags, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/tags, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/tags, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/tags/assets, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/tags/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/tags/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/tags/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/tags/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/tags/:id/assets, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/tags/:id/assets, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] TimelineController {/api/timeline}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/timeline/buckets, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/timeline/bucket, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] TrashController {/api/trash}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/trash/empty, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/trash/restore, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/trash/restore/assets, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] UserAdminController {/api/admin/users}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/calendar-heatmap, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/sessions, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/preferences, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/preferences, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/preferences, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/restore, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] UserController {/api/users}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/calendar-heatmap, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/preferences, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/preferences, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/preferences, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/license, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/license, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/license, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/onboarding, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/onboarding, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/onboarding, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/profile-image, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/profile-image, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/users/:id/profile-image, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] VideoStreamController {/api/assets}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/video/stream/main.m3u8, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/video/stream/:sessionId/:variantIndex/playlist.m3u8, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/video/stream/:sessionId/:variantIndex/:filename, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/video/stream/:sessionId, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] ViewController {/api/view}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/view/folder/unique-paths, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/view/folder, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RoutesResolver] WorkflowController {/api/workflows}:
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows, POST} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows/triggers, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows/:id/share, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows/:id/logs, GET} route
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:NestApplication] Nest application successfully started
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:Bootstrap] Immich Server is listening on http://[::1]:2283 [v3.2.2] [production] 
immich-server | [Nest] 29 - 09/30/2026, 4:08:46 PM  LOG [Api:MachineLearningRepository] Machine learning server became healthy (http://immich-machine-learning:3003).
immich-server | [Nest] 7 - 09/30/2026, 4:08:48 PM  LOG [Microservices:MapRepository] 10000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:48 PM  LOG [Microservices:MapRepository] 20000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:48 PM  LOG [Microservices:MapRepository] 30000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:48 PM  LOG [Microservices:MapRepository] 40000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:49 PM  LOG [Microservices:MapRepository] 50000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:49 PM  LOG [Microservices:MapRepository] 60000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:49 PM  LOG [Microservices:MapRepository] 70000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:50 PM  LOG [Microservices:MapRepository] 80000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:50 PM  LOG [Microservices:MapRepository] 90000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:51 PM  LOG [Microservices:MapRepository] 100000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:51 PM  LOG [Microservices:MapRepository] 110000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:51 PM  LOG [Microservices:MapRepository] 120000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:51 PM  LOG [Microservices:MapRepository] 130000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:52 PM  LOG [Microservices:MapRepository] 140000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:52 PM  LOG [Microservices:MapRepository] 150000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:52 PM  LOG [Microservices:MapRepository] 160000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:52 PM  LOG [Microservices:MapRepository] 170000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:52 PM  LOG [Microservices:MapRepository] 180000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:53 PM  LOG [Microservices:MapRepository] 190000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:54 PM  LOG [Microservices:MapRepository] 200000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:54 PM  LOG [Microservices:MapRepository] 210000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:54 PM  LOG [Microservices:MapRepository] 220000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 4:08:54 PM  LOG [Microservices:MapRepository] Successfully imported 228294 geodata records in 8.40s (27185 records/second)
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:MapRepository] Geodata import completed
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:MetadataService] Initialized local reverse geocoder
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:ServerService] Feature Flags: {
immich-server | "smartSearch": true,
immich-server | "facialRecognition": true,
immich-server | "duplicateDetection": true,
immich-server | "map": true,
immich-server | "reverseGeocoding": true,
immich-server | "importFaces": false,
immich-server | "sidecar": true,
immich-server | "search": true,
immich-server | "trash": true,
immich-server | "oauth": false,
immich-server | "oauthAutoLaunch": false,
immich-server | "ocr": true,
immich-server | "passwordLogin": true,
immich-server | "configFile": false,
immich-server | "email": false,
immich-server | "realtimeTranscoding": false
immich-server | }
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:VersionService] Found v3.2.4, released at 9/28/2026, 6:52:50 PM
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:VersionService] Adding 3.2.2 to upgrade history
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:SystemConfigService] LogLevel=log (set via system config)
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:MachineLearningRepository] Machine learning server became healthy (http://immich-machine-learning:3003).
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:WorkflowExecutionService] Plugin up to date (name=immich-plugin-core@2.0.1, hash=bdf1416f47c7fe3b589bd5cdb61c74384f831969f1f0d89d30f0133882bddf55
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:WorkflowExecutionService] Loaded plugin: immich-plugin-core@2.0.1
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:WorkflowExecutionService] Loaded plugin with host functions: immich-plugin-core@2.0.1/worker
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:NestFactory] Starting Nest application...
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:InstanceLoader] BullModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:InstanceLoader] ClsModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:InstanceLoader] ClsCommonModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:InstanceLoader] OpenTelemetryModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:InstanceLoader] KyselyModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:InstanceLoader] OpenTelemetryCoreModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:InstanceLoader] DiscoveryModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:InstanceLoader] ClsRootModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:InstanceLoader] ClsPluginsModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:InstanceLoader] BullModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:InstanceLoader] BullModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:InstanceLoader] MicroservicesModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:NestApplication] Nest application successfully started
immich-server | [Nest] 7 - 09/30/2026, 4:09:02 PM  LOG [Microservices:Bootstrap] Immich Microservices is running [v3.2.2] [production] 
@@ -0,0 +1,8 @@
{
"immich-postgres": {
"image": "ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0",
"probe": "datadir major version",
"answer": "16",
"probe_rc": 0
}
}
@@ -0,0 +1,4 @@
{
"/srv/felhom-gate/hdd/appdata/immich": "1135d713cea0ded3c79fd50ff4cfccd80b0fb615179c2886e78b5d8fdf2c44a1",
"/srv/felhom-gate/hdd/userdata/media/photos": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
@@ -0,0 +1,4 @@
{
"/srv/felhom-gate/hdd/appdata/immich": "458d9e32d51158b01557941974fa44a6147f3b12c1818a5edc4695be85530358",
"/srv/felhom-gate/hdd/userdata/media/photos": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
@@ -0,0 +1,6 @@
immich-server | [Nest] 7 - 09/30/2026, 3:58:04 PM  LOG [Microservices:DatabaseRepository] Running migrations
immich-server | [Nest] 7 - 09/30/2026, 3:58:05 PM  LOG [Microservices:DatabaseRepository] Finished running migrations
immich-server | [Nest] 7 - 09/30/2026, 3:58:05 PM  LOG [Microservices:DatabaseService] Checking for schema drift
immich-server | [Nest] 7 - 09/30/2026, 3:58:05 PM  LOG [Microservices:DatabaseService] No schema drift detected
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:DatabaseRepository] Running migrations
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:DatabaseRepository] Finished running migrations
@@ -0,0 +1,60 @@
[13:56:08] scratch drive folders cleared before FROM (R-656): ['/srv/felhom-gate/hdd/appdata/immich', '/srv/felhom-gate/hdd/userdata/media/photos']
[13:56:08] MV-immich: deploying immich at FROM {'immich-server': 'ghcr.io/immich-app/immich-server:v3.2.2', 'immich-machine-learning': 'ghcr.io/immich-app/immich-machine-learning:v3.2.2', 'immich-postgres': 'ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0', 'immich-redis': 'redis:7-alpine'}
[13:56:51] FROM settled=True in 31.4s :: {"immich-machine-learning": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-server": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[13:56:51] fixture: the BOX walk's own (Immich), through upgrade_boxport
[13:56:52] immich: seeded album drillalbumf96a1da1
[13:56:52] immich: readback found=True (http 200, control passed)
[13:56:52] C1 (seed reads back BEFORE): True
[13:56:52] MV-immich: swapping to TO {'immich-server': 'ghcr.io/immich-app/immich-server:v3.2.4', 'immich-machine-learning': 'ghcr.io/immich-app/immich-machine-learning:v3.2.4', 'immich-postgres': 'ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0', 'immich-redis': 'redis:7-alpine'}
[13:57:55] TO up -d rc=0
[13:58:27] TO settled=True in 31.7s :: {"immich-machine-learning": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "immich-server": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
[13:58:27] engine state immich-postgres: 16
[13:58:27] migration lines observed: 6
[13:58:28] immich: readback found=True (http 200, control passed)
[13:58:28] RESULT (seed reads back AFTER): True
[13:58:28] files_may_change: the bind-mounted tree changed under ['/srv/felhom-gate/hdd/appdata/immich']
[13:58:28] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:2283
[13:58:43] + 15s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=748M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=1116M/2048M peak=1257M kills=0 rs=0 reqs=304
[13:58:58] + 30s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=748M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=1117M/2048M peak=1257M kills=0 rs=0 reqs=604
[13:59:14] + 46s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=748M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=1084M/2048M peak=1257M kills=0 rs=0 reqs=904
[13:59:29] + 61s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=749M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=1084M/2048M peak=1257M kills=0 rs=0 reqs=1204
[13:59:44] + 76s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=749M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=1082M/2048M peak=1257M kills=0 rs=0 reqs=1504
[13:59:59] + 91s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=749M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=952M/2048M peak=1257M kills=0 rs=0 reqs=1808
[14:00:14] + 106s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=749M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=702M/2048M peak=1257M kills=0 rs=0 reqs=2108
[14:00:30] + 122s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=749M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=704M/2048M peak=1257M kills=0 rs=0 reqs=2408
[14:00:45] + 137s immich-machine-learning=167M/1536M peak=183M kills=0 rs=0 immich-postgres=749M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=703M/2048M peak=1257M kills=0 rs=0 reqs=2712
[14:01:00] + 152s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=749M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=703M/2048M peak=1257M kills=0 rs=0 reqs=3012
[14:01:15] + 167s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=753M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=704M/2048M peak=1257M kills=0 rs=0 reqs=3312
[14:01:30] + 182s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=765M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=702M/2048M peak=1257M kills=0 rs=0 reqs=3612
[14:01:46] + 198s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=767M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=670M/2048M peak=1257M kills=0 rs=0 reqs=3912
[14:02:01] + 213s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=764M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=669M/2048M peak=1257M kills=0 rs=0 reqs=4216
[14:02:16] + 228s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=767M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=670M/2048M peak=1257M kills=0 rs=0 reqs=4516
[14:02:31] + 243s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=766M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=670M/2048M peak=1257M kills=0 rs=0 reqs=4816
[14:02:46] + 258s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=767M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=671M/2048M peak=1257M kills=0 rs=0 reqs=5116
[14:03:01] + 273s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=765M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=671M/2048M peak=1257M kills=0 rs=0 reqs=5416
[14:03:17] + 289s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=767M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=671M/2048M peak=1257M kills=0 rs=0 reqs=5716
[14:03:32] + 304s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=765M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=671M/2048M peak=1257M kills=0 rs=0 reqs=6016
[14:03:47] + 319s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=764M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=672M/2048M peak=1257M kills=0 rs=0 reqs=6320
[14:04:02] + 334s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=766M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=673M/2048M peak=1257M kills=0 rs=0 reqs=6620
[14:04:17] + 349s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=767M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=673M/2048M peak=1257M kills=0 rs=0 reqs=6920
[14:04:33] + 364s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=764M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=674M/2048M peak=1257M kills=0 rs=0 reqs=7220
[14:04:48] + 380s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=767M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=675M/2048M peak=1257M kills=0 rs=0 reqs=7520
[14:05:03] + 395s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=763M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=675M/2048M peak=1257M kills=0 rs=0 reqs=7820
[14:05:18] + 410s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=763M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=676M/2048M peak=1257M kills=0 rs=0 reqs=8124
[14:05:33] + 425s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=764M/768M peak=768M kills=0 rs=0 immich-redis=7M/128M peak=9M kills=0 rs=0 immich-server=677M/2048M peak=1257M kills=0 rs=0 reqs=8424
[14:05:48] + 440s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=676M/2048M peak=1257M kills=0 rs=0 reqs=8724
[14:06:04] + 456s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=676M/2048M peak=1257M kills=0 rs=0 reqs=9024
[14:06:19] + 471s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=676M/2048M peak=1257M kills=0 rs=0 reqs=9324
[14:06:34] + 486s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=677M/2048M peak=1257M kills=0 rs=0 reqs=9628
[14:06:49] + 501s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=679M/2048M peak=1257M kills=0 rs=0 reqs=9928
[14:07:04] + 516s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=680M/2048M peak=1257M kills=0 rs=0 reqs=10228
[14:07:20] + 532s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=680M/2048M peak=1257M kills=0 rs=0 reqs=10528
[14:07:35] + 547s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=681M/2048M peak=1257M kills=0 rs=0 reqs=10828
[14:07:50] + 562s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=681M/2048M peak=1257M kills=0 rs=0 reqs=11128
[14:08:05] + 577s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=681M/2048M peak=1257M kills=0 rs=0 reqs=11432
[14:08:20] + 592s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=682M/2048M peak=1257M kills=0 rs=0 reqs=11732
[14:08:36] + 608s immich-machine-learning=167M/1536M peak=184M kills=0 rs=0 immich-postgres=762M/768M peak=768M kills=0 rs=0 immich-redis=6M/128M peak=9M kills=0 rs=0 immich-server=684M/2048M peak=1257M kills=0 rs=0 reqs=12032
[14:08:36] memory watch: killed=False tight=[] requests=12032 codes={'200': 12032}
[14:08:36] MV-immich: ABORT — putting the FROM images back
[14:09:09] immich: readback found=True (http 200, control passed)
[14:09:09] ABORT: app came back in 31.5s; data present=True
@@ -0,0 +1,562 @@
immich-machine-learning | [09/30/26 15:57:58] INFO  Starting gunicorn 25.3.0
immich-machine-learning | [09/30/26 15:57:58] INFO  Listening at: http://[::]:3003 (13)
immich-machine-learning | [09/30/26 15:57:58] INFO  Using worker: immich_ml.config.CustomUvicornWorker
immich-machine-learning | [09/30/26 15:57:58] INFO  Booting worker with pid: 19
immich-machine-learning | [09/30/26 15:57:59] INFO  Started server process [19]
immich-machine-learning | [09/30/26 15:57:59] INFO  Waiting for application startup.
immich-machine-learning | [09/30/26 15:57:59] INFO  Created in-memory cache with unloading after 300s
immich-machine-learning |   of inactivity.
immich-machine-learning | [09/30/26 15:57:59] INFO  Initialized request thread pool with 8 threads.
immich-machine-learning | [09/30/26 15:57:59] INFO  Application startup complete.
immich-postgres | Using SSD storage
immich-postgres | The files belonging to this database system will be owned by user "postgres".
immich-postgres | This user must also own the server process.
immich-postgres |
immich-postgres | The database cluster will be initialized with locale "en_US.utf8".
immich-postgres | The default database encoding has accordingly been set to "UTF8".
immich-postgres | The default text search configuration will be set to "english".
immich-postgres |
immich-postgres | Data page checksums are enabled.
immich-postgres |
immich-postgres | fixing permissions on existing directory /var/lib/postgresql/data ... ok
immich-postgres | creating subdirectories ... ok
immich-postgres | selecting dynamic shared memory implementation ... posix
immich-postgres | selecting default max_connections ... 100
immich-postgres | selecting default shared_buffers ... 128MB
immich-postgres | selecting default time zone ... Europe/Budapest
immich-postgres | creating configuration files ... ok
immich-postgres | running bootstrap script ... ok
immich-postgres | performing post-bootstrap initialization ... ok
immich-postgres | syncing data to disk ... ok
immich-postgres |
immich-postgres |
immich-postgres | Success. You can now start the database server using:
immich-postgres |
immich-postgres | pg_ctl -D /var/lib/postgresql/data -l logfile start
immich-postgres |
immich-postgres | initdb: warning: enabling "trust" authentication for local connections
immich-postgres | initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
immich-postgres | 2026-09-30 13:56:10.468 GMT [49] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
immich-postgres | 2026-09-30 13:56:10.469 GMT [49] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
immich-postgres | waiting for server to start....2026-09-30 13:56:10.509 GMT [54] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
immich-postgres | 2026-09-30 13:56:10.509 GMT [54] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
immich-postgres | 2026-09-30 15:56:10.547 CEST [54] LOG: starting PostgreSQL 16.10 (Debian 16.10-1.pgdg12+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit
immich-postgres | 2026-09-30 15:56:10.550 CEST [54] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
immich-postgres | 2026-09-30 15:56:10.562 CEST [57] LOG: database system was shut down at 2026-09-30 15:56:10 CEST
immich-postgres | 2026-09-30 15:56:10.572 CEST [54] LOG: database system is ready to accept connections
immich-postgres | done
immich-postgres | server started
immich-postgres | CREATE DATABASE
immich-postgres |
immich-postgres |
immich-postgres | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
immich-postgres |
immich-postgres | waiting for server to shut down...2026-09-30 15:56:10.841 CEST [54] LOG: received fast shutdown request
immich-postgres | .2026-09-30 15:56:10.846 CEST [54] LOG: aborting any active transactions
immich-postgres | 2026-09-30 15:56:10.849 CEST [54] LOG: background worker "logical replication launcher" (PID 63) exited with exit code 1
immich-postgres | 2026-09-30 15:56:10.852 CEST [55] LOG: shutting down
immich-postgres | 2026-09-30 15:56:10.855 CEST [55] LOG: checkpoint starting: shutdown immediate
immich-postgres | 2026-09-30 15:56:10.943 CEST [55] LOG: checkpoint complete: wrote 922 buffers (1.4%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.026 s, sync=0.051 s, total=0.091 s; sync files=301, longest=0.021 s, average=0.001 s; distance=1672 kB, estimate=1672 kB; lsn=0/18CED10, redo lsn=0/18CED10
immich-postgres | 2026-09-30 15:56:10.967 CEST [54] LOG: database system is shut down
immich-postgres | done
immich-postgres | server stopped
immich-postgres |
immich-postgres | PostgreSQL init process complete; ready for start up.
immich-postgres |
immich-postgres | 2026-09-30 13:56:11.061 GMT [1] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
immich-postgres | 2026-09-30 13:56:11.061 GMT [1] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
immich-postgres | 2026-09-30 15:56:11.106 CEST [1] LOG: starting PostgreSQL 16.10 (Debian 16.10-1.pgdg12+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit
immich-postgres | 2026-09-30 15:56:11.107 CEST [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
immich-postgres | 2026-09-30 15:56:11.107 CEST [1] LOG: listening on IPv6 address "::", port 5432
immich-postgres | 2026-09-30 15:56:11.116 CEST [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
immich-postgres | 2026-09-30 15:56:11.126 CEST [73] LOG: database system was shut down at 2026-09-30 15:56:10 CEST
immich-postgres | 2026-09-30 15:56:11.138 CEST [1] LOG: database system is ready to accept connections
immich-postgres | 2026-09-30 15:56:23.191 CEST [88] ERROR: relation "system_metadata" does not exist at character 21
immich-postgres | 2026-09-30 15:56:23.191 CEST [88] STATEMENT: select "value" from "system_metadata" where "key" = $1
immich-postgres | 2026-09-30 15:56:41.253 CEST [131] LOG: skipping vacuum of "geodata_places" --- lock not available
immich-server | Initializing Immich v3.2.4
immich-server | Detected CPU Cores: 8
immich-server | (node:7) ExperimentalWarning: WASI is an experimental feature and might change at any time
immich-server | (Use `node --trace-warnings ...` to show where the warning was created)
immich-redis | 1:C 30 Sep 2026 15:56:09.474 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
immich-server | Starting api worker
immich-server | Starting microservices worker
immich-server | (node:7) ExperimentalWarning: WASI is an experimental feature and might change at any time
immich-server | (Use `node --trace-warnings ...` to show where the warning was created)
immich-server | (node:29) ExperimentalWarning: WASI is an experimental feature and might change at any time
immich-server | (Use `node --trace-warnings ...` to show where the warning was created)
immich-server | [Nest] 7 - 09/30/2026, 3:58:04 PM  LOG [Microservices:WebsocketRepository] Initialized websocket server
immich-server | [Nest] 7 - 09/30/2026, 3:58:04 PM  LOG [Microservices:DatabaseRepository] targetLists=1, current=1 for clip_index of 0 rows
immich-server | [Nest] 7 - 09/30/2026, 3:58:04 PM  LOG [Microservices:DatabaseRepository] targetLists=1, current=1 for face_index of 0 rows
immich-server | [Nest] 7 - 09/30/2026, 3:58:04 PM  LOG [Microservices:DatabaseRepository] Running migrations
immich-server | [Nest] 7 - 09/30/2026, 3:58:05 PM  LOG [Microservices:DatabaseRepository] Finished running migrations
immich-server | [Nest] 7 - 09/30/2026, 3:58:05 PM  LOG [Microservices:DatabaseService] Checking for schema drift
immich-server | [Nest] 7 - 09/30/2026, 3:58:05 PM  LOG [Microservices:DatabaseService] No schema drift detected
immich-server | [Nest] 7 - 09/30/2026, 3:58:05 PM  LOG [Microservices:StorageService] Verifying system mount folder checks, current state: {"mountChecks":{"thumbs":true,"upload":true,"backups":true,"library":true,"profile":true,"encoded-video":true}}
immich-server | [Nest] 7 - 09/30/2026, 3:58:05 PM  LOG [Microservices:StorageService] Successfully verified system mount folder checks
immich-server | [Nest] 7 - 09/30/2026, 3:58:05 PM  LOG [Microservices:MetadataService] Bootstrapping metadata service
immich-server | [Nest] 7 - 09/30/2026, 3:58:05 PM  LOG [Microservices:MetadataService] Initializing metadata service
immich-server | [Nest] 7 - 09/30/2026, 3:58:05 PM  LOG [Microservices:MapRepository] Initializing metadata repository
immich-server | [Nest] 29 - 09/30/2026, 3:58:05 PM  LOG [Api:WebsocketRepository] Initialized websocket server
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:DatabaseRepository] targetLists=1, current=1 for clip_index of 0 rows
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:DatabaseRepository] targetLists=1, current=1 for face_index of 0 rows
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:DatabaseRepository] Running migrations
immich-server | [Nest] 7 - 09/30/2026, 3:58:06 PM  LOG [Microservices:MapRepository] Starting geodata import
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:DatabaseRepository] Finished running migrations
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:DatabaseService] Checking for schema drift
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  WARN [Api:DatabaseService] Detected schema drift. For more information, see https://docs.immich.app/errors#schema-drift or run `immich-admin schema-check`
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  WARN [Api:DatabaseService]  - The index "geodata_places"."idx_geodata_places_name" is missing and needs to be created
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  WARN [Api:DatabaseService]  - The index "geodata_places"."idx_geodata_places_admin2_name" is missing and needs to be created
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  WARN [Api:DatabaseService]  - The index "geodata_places"."idx_geodata_places_admin1_name" is missing and needs to be created
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  WARN [Api:DatabaseService]  - The index "geodata_places"."idx_geodata_places_alternate_names" is missing and needs to be created
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  WARN [Api:DatabaseService]  - The constraint "geodata_places"."geodata_places_pkey" (primary-key) is missing and needs to be created
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:StorageService] Verifying system mount folder checks, current state: {"mountChecks":{"thumbs":true,"upload":true,"backups":true,"library":true,"profile":true,"encoded-video":true}}
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:StorageService] Successfully verified system mount folder checks
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:ServerService] Feature Flags: {
immich-server | "smartSearch": true,
immich-server | "facialRecognition": true,
immich-server | "duplicateDetection": true,
immich-server | "map": true,
immich-redis | 1:C 30 Sep 2026 15:56:09.474 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
immich-redis | 1:C 30 Sep 2026 15:56:09.474 * Redis version=7.4.11, bits=64, commit=00000000, modified=0, pid=1, just started
immich-server | "reverseGeocoding": true,
immich-server | "importFaces": false,
immich-server | "sidecar": true,
immich-server | "search": true,
immich-server | "trash": true,
immich-server | "oauth": false,
immich-server | "oauthAutoLaunch": false,
immich-server | "ocr": true,
immich-server | "passwordLogin": true,
immich-server | "configFile": false,
immich-server | "email": false,
immich-server | "realtimeTranscoding": false
immich-server | }
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:SystemConfigService] LogLevel=log (set via system config)
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:NestFactory] Starting Nest application...
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:InstanceLoader] BullModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:InstanceLoader] ClsModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:InstanceLoader] ClsCommonModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:InstanceLoader] OpenTelemetryModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:InstanceLoader] KyselyModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:InstanceLoader] OpenTelemetryCoreModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:InstanceLoader] DiscoveryModule dependencies initialized
immich-redis | 1:C 30 Sep 2026 15:56:09.474 * Configuration loaded
immich-redis | 1:M 30 Sep 2026 15:56:09.475 * monotonic clock: POSIX clock_gettime
immich-redis | 1:M 30 Sep 2026 15:56:09.476 * Running mode=standalone, port=6379.
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:InstanceLoader] ClsRootModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:InstanceLoader] ClsPluginsModule dependencies initialized
immich-redis | 1:M 30 Sep 2026 15:56:09.476 * Server initialized
immich-redis | 1:M 30 Sep 2026 15:56:09.480 * Creating AOF base file appendonly.aof.1.base.rdb on server start
immich-redis | 1:M 30 Sep 2026 15:56:09.486 * Creating AOF incr file appendonly.aof.1.incr.aof on server start
immich-redis | 1:M 30 Sep 2026 15:56:09.486 * Ready to accept connections tcp
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:InstanceLoader] ScheduleModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:InstanceLoader] BullModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:InstanceLoader] BullModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:InstanceLoader] ApiModule dependencies initialized
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  WARN [Api:LegacyRouteConverter] Unsupported route path: "/api/*". In previous versions, the symbols ?, *, and + were used to denote optional or repeating path parameters. The latest version of "path-to-regexp" now requires the use of named parameters. For example, instead of using a route like /users/* to capture all routes starting with "/users", you should use /users/*path. For more details, refer to the migration guide. Attempting to auto-convert to "/api/{*path}"...
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] ApiKeyController {/api/api-keys}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys/me, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys/:id/rotate, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/api-keys/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] ActivityController {/api/activities}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/activities, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/activities, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/activities/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/activities/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] AlbumController {/api/albums}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/albums, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/albums, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id/map-markers, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id/assets, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/assets, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id/assets, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id/users, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id/user/:userId, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/albums/:id/user/:userId, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] AppController {/api}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/.well-known/immich, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/custom.css, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] AssetController {/api/assets}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/jobs, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/copy, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/metadata, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/metadata, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/metadata, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/ocr, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/metadata, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/metadata/:key, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/metadata/:key, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/edits, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/edits, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/edits, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] AssetFilesController {/api/asset-files}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/asset-files, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/asset-files/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/asset-files/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/asset-files/:id/download, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] AssetMediaController {/api/assets}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/original, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/thumbnail, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/video/playback, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/bulk-upload-check, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] AuthController {/api/auth}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/login, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/admin-sign-up, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/validateToken, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/change-password, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/logout, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/status, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/pin-code, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/pin-code, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/pin-code, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/session/unlock, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/auth/session/lock, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] AuthAdminController {/api/admin/auth}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/auth/unlink-all, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] ClusterGroupController {/api/cluster-groups}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/requests, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/requests/:id/accept, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/requests/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/:id/requests, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/:id/users, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/:id/requests, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/:id/regenerate-people, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/cluster-groups/:id/leave, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] ConfigUserController {/api/config}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/config, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/config/defaults, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] ConfigAdminController {/api/admin/config}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/config, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/config/defaults, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/config, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] ConfigPublicController {/api/public/config}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/public/config, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/public/config/defaults, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] DatabaseBackupController {/api/admin/database-backups}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/database-backups, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/database-backups/:filename, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/database-backups, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/database-backups/start-restore, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/database-backups/upload, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] DownloadController {/api/download}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/download/info, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/download/archive, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] DuplicateController {/api/duplicates}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/duplicates, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/duplicates, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/duplicates/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/duplicates/resolve, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] FaceController {/api/faces}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/faces, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/faces, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/faces/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/faces/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] IntegrityAdminController {/api/admin/integrity}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/integrity/summary, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/integrity/report, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/integrity/report/:id/file, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/integrity/report/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/integrity/report/:type/csv, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] JobController {/api/jobs}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/jobs, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/jobs, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/jobs/:name, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] LibraryController {/api/libraries}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries/:id/validate, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries/:id/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/libraries/:id/scan, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] MaintenanceController {/api/admin/maintenance}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/maintenance/status, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/maintenance/detect-install, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/maintenance/login, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/maintenance, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] MapController {/api/map}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/map/markers, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/map/reverse-geocode, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] MemoryController {/api/memories}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/memories, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/memories, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/memories/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/memories/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/memories/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/memories/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/memories/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/memories/:id/assets, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/memories/:id/assets, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] NotificationController {/api/notifications}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/notifications, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/notifications, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/notifications, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/notifications/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/notifications/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/notifications/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] NotificationAdminController {/api/admin/notifications}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/notifications, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/notifications/test-email, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/notifications/templates/:name, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] OAuthController {/api/oauth}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/oauth/mobile-redirect, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/oauth/authorize, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/oauth/callback, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/oauth/link, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/oauth/unlink, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/oauth/backchannel-logout, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] PartnerController {/api/partners}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/partners, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/partners, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/partners/:id, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/partners/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/partners/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] PersonController {/api/people}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/people, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/people, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/people, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/people, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id/thumbnail, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id/reassign, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/people/merge, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/people/:id/merge, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] PluginController {/api/plugins}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/plugins, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/plugins/methods, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/plugins/templates, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/plugins/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] QueueController {/api/queues}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/queues, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/queues/:name, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/queues/:name, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/queues/:name/jobs, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/queues/:name/jobs, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] SearchController {/api/search}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/search/metadata, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/search/statistics, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/search/random, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/search/large-assets, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/search/smart, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/search/explore, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/search/person, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/search/places, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/search/cities, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/search/suggestions, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] ServerController {/api/server}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/server/about, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/server/apk-links, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/server/storage, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/server/ping, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/server/version, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/server/version-history, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/server/features, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/server/config, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/server/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/server/media-types, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/server/license, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/server/license, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/server/license, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/server/version-check, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] SessionController {/api/sessions}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/sessions, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/sessions, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/sessions, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/sessions/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/sessions/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/sessions/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/sessions/:id/lock, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] SharedLinkController {/api/shared-links}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links/login, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links/me, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links/:id/assets, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/shared-links/:id/assets, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] StackController {/api/stacks}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/stacks/:id/assets/:assetId, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] SyncController {/api/sync}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/sync/stream, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/sync/ack, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/sync/ack, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/sync/ack, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] SystemConfigController {/api/system-config}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/system-config, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/system-config/defaults, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/system-config, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/system-config/storage-template-options, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] SystemMetadataController {/api/system-metadata}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/system-metadata/admin-onboarding, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/system-metadata/admin-onboarding, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/system-metadata/reverse-geocoding-state, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/system-metadata/version-check-state, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] TagController {/api/tags}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/tags, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/tags, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/tags, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/tags/assets, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/tags/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/tags/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/tags/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/tags/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/tags/:id/assets, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/tags/:id/assets, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] TimelineController {/api/timeline}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/timeline/buckets, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/timeline/bucket, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] TrashController {/api/trash}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/trash/empty, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/trash/restore, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/trash/restore/assets, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] UserAdminController {/api/admin/users}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/calendar-heatmap, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/sessions, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/statistics, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/preferences, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/preferences, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/preferences, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/admin/users/:id/restore, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] UserController {/api/users}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/calendar-heatmap, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/preferences, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/preferences, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/preferences, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/license, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/license, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/license, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/onboarding, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/onboarding, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/me/onboarding, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/profile-image, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/profile-image, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/users/:id/profile-image, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] VideoStreamController {/api/assets}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/video/stream/main.m3u8, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/video/stream/:sessionId/:variantIndex/playlist.m3u8, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/video/stream/:sessionId/:variantIndex/:filename, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/assets/:id/video/stream/:sessionId, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] ViewController {/api/view}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/view/folder/unique-paths, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/view/folder, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RoutesResolver] WorkflowController {/api/workflows}:
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows, POST} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows/triggers, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows/:id, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows/:id/share, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows/:id, PUT} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows/:id, PATCH} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows/:id, DELETE} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:RouterExplorer] Mapped {/api/workflows/:id/logs, GET} route
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:NestApplication] Nest application successfully started
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:Bootstrap] Immich Server is listening on http://[::1]:2283 [v3.2.4] [production] 
immich-server | [Nest] 29 - 09/30/2026, 3:58:06 PM  LOG [Api:MachineLearningRepository] Machine learning server became healthy (http://immich-machine-learning:3003).
immich-server | [Nest] 7 - 09/30/2026, 3:58:09 PM  LOG [Microservices:MapRepository] 10000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:09 PM  LOG [Microservices:MapRepository] 20000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:09 PM  LOG [Microservices:MapRepository] 30000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:09 PM  LOG [Microservices:MapRepository] 40000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:11 PM  LOG [Microservices:MapRepository] 50000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:11 PM  LOG [Microservices:MapRepository] 60000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:11 PM  LOG [Microservices:MapRepository] 70000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:11 PM  LOG [Microservices:MapRepository] 80000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:11 PM  LOG [Microservices:MapRepository] 90000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:13 PM  LOG [Microservices:MapRepository] 100000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:13 PM  LOG [Microservices:MapRepository] 110000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:13 PM  LOG [Microservices:MapRepository] 120000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:13 PM  LOG [Microservices:MapRepository] 130000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:14 PM  LOG [Microservices:MapRepository] 140000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:14 PM  LOG [Microservices:MapRepository] 150000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:14 PM  LOG [Microservices:MapRepository] 160000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:14 PM  LOG [Microservices:MapRepository] 170000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:14 PM  LOG [Microservices:MapRepository] 180000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:16 PM  LOG [Microservices:MapRepository] 190000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:16 PM  LOG [Microservices:MapRepository] 200000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:16 PM  LOG [Microservices:MapRepository] 210000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:16 PM  LOG [Microservices:MapRepository] 220000 geodata records imported
immich-server | [Nest] 7 - 09/30/2026, 3:58:16 PM  LOG [Microservices:MapRepository] Successfully imported 228571 geodata records in 10.53s (21704 records/second)
immich-server | [Nest] 7 - 09/30/2026, 3:58:26 PM  LOG [Microservices:MapRepository] Geodata import completed
immich-server | [Nest] 7 - 09/30/2026, 3:58:26 PM  LOG [Microservices:MetadataService] Initialized local reverse geocoder
immich-server | [Nest] 7 - 09/30/2026, 3:58:26 PM  LOG [Microservices:ServerService] Feature Flags: {
immich-server | "smartSearch": true,
immich-server | "facialRecognition": true,
immich-server | "duplicateDetection": true,
immich-server | "map": true,
immich-server | "reverseGeocoding": true,
immich-server | "importFaces": false,
immich-server | "sidecar": true,
immich-server | "search": true,
immich-server | "trash": true,
immich-server | "oauth": false,
immich-server | "oauthAutoLaunch": false,
immich-server | "ocr": true,
immich-server | "passwordLogin": true,
immich-server | "configFile": false,
immich-server | "email": false,
immich-server | "realtimeTranscoding": false
immich-server | }
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:VersionService] Adding 3.2.4 to upgrade history
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:SystemConfigService] LogLevel=log (set via system config)
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:MachineLearningRepository] Machine learning server became healthy (http://immich-machine-learning:3003).
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:WorkflowExecutionService] Plugin up to date (name=immich-plugin-core@2.0.1, hash=bdf1416f47c7fe3b589bd5cdb61c74384f831969f1f0d89d30f0133882bddf55
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:WorkflowExecutionService] Loaded plugin: immich-plugin-core@2.0.1
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:WorkflowExecutionService] Loaded plugin with host functions: immich-plugin-core@2.0.1/worker
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:NestFactory] Starting Nest application...
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:InstanceLoader] BullModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:InstanceLoader] ClsModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:InstanceLoader] ClsCommonModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:InstanceLoader] OpenTelemetryModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:InstanceLoader] KyselyModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:InstanceLoader] OpenTelemetryCoreModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:InstanceLoader] DiscoveryModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:InstanceLoader] ClsRootModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:InstanceLoader] ClsPluginsModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:InstanceLoader] BullModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:InstanceLoader] BullModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:InstanceLoader] MicroservicesModule dependencies initialized
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:NestApplication] Nest application successfully started
immich-server | [Nest] 7 - 09/30/2026, 3:58:27 PM  LOG [Microservices:Bootstrap] Immich Microservices is running [v3.2.4] [production] 
@@ -0,0 +1,26 @@
{
"immich-machine-learning": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
},
"immich-postgres": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
},
"immich-redis": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
},
"immich-server": {
"status": "running",
"health": "healthy",
"restarts": 0,
"exit": 0
}
}
@@ -0,0 +1,104 @@
{
"harness_version": 4,
"edge": "MV-immich",
"app": "immich",
"note": "night 2026-09-23 within-a-major move: immich-server=ghcr.io/immich-app/immich-server:v3.2.4, immich-machine-learning=ghcr.io/immich-app/immich-machine-learning:v3.2.4",
"from": {
"immich-server": "ghcr.io/immich-app/immich-server:v3.2.2",
"immich-machine-learning": "ghcr.io/immich-app/immich-machine-learning:v3.2.2",
"immich-postgres": "ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0",
"immich-redis": "redis:7-alpine"
},
"to": {
"immich-server": "ghcr.io/immich-app/immich-server:v3.2.4",
"immich-machine-learning": "ghcr.io/immich-app/immich-machine-learning:v3.2.4",
"immich-postgres": "ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0",
"immich-redis": "redis:7-alpine"
},
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"migration_observed": "\u001b[2Kimmich-server | \u001b[32m[Nest] 7 - \u001b[39m09/30/2026, 3:58:04 PM \u001b[32m LOG\u001b[39m \u001b[33m[Microservices:DatabaseRepository]\u001b[39m \u001b[32mRunning migrations\u001b[39m",
"abort": "starts-and-serves",
"abort_detail": null,
"engine_state_after": {
"immich-postgres": {
"image": "ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0",
"probe": "datadir major version",
"answer": "16",
"probe_rc": 0
}
},
"memory": {
"soak_s": 607.7,
"requested_s": 600,
"requests": 12032,
"codes": {
"200": 12032
},
"first_kill": null,
"containers": {
"immich-machine-learning": {
"limit": 1610612736,
"peak": 193114112,
"peak_pct": 0.12,
"anon_peak_sampled": 164626432,
"anon_peak_pct": 0.102,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
},
"immich-postgres": {
"limit": 805306368,
"peak": 805437440,
"peak_pct": 1.0,
"anon_peak_sampled": 192827392,
"anon_peak_pct": 0.239,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
},
"immich-redis": {
"limit": 134217728,
"peak": 10223616,
"peak_pct": 0.076,
"anon_peak_sampled": 3981312,
"anon_peak_pct": 0.03,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
},
"immich-server": {
"limit": 2147483648,
"peak": 1318445056,
"peak_pct": 0.614,
"anon_peak_sampled": 1097105408,
"anon_peak_pct": 0.511,
"oom_kills": 0,
"restarts": 0,
"oomkilled_flag": false,
"measured": true
}
},
"unmeasured": [],
"load": "reached"
},
"marks": [
"files_may_change"
],
"duration_s": 31.7,
"measured_at": "2026-09-30T14:09:09Z",
"evidence": "evidence/MV-immich",
"scratch_cleared": [
"/srv/felhom-gate/hdd/appdata/immich",
"/srv/felhom-gate/hdd/userdata/media/photos"
],
"files_changed": [
"/srv/felhom-gate/hdd/appdata/immich"
],
"total_s": 780.5
}
@@ -0,0 +1,3 @@
15:56:03 START immich ['immich-server=ghcr.io/immich-app/immich-server:v3.2.4', 'immich-machine-learning=ghcr.io/immich-app/immich-machine-learning:v3.2.4']
16:09:14 DONE immich rc=0 verdict=proven read_before=True read_after=True abort=starts-and-serves marks=['files_may_change'] peaks={'immich-machine-learning': 0.12, 'immich-postgres': 1.0, 'immich-redis': 0.076, 'immich-server': 0.614} detail='None' (791s)
16:09:14 QUEUE q1 FINISHED
@@ -0,0 +1 @@
74060d9 DRILL immich: v3.2.4 + immich-postgres 768M (R-732 box proof)
@@ -0,0 +1,6 @@
limit=805306368 image=ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0
server=ghcr.io/immich-app/immich-server:v3.2.4
55: memory: 2048M
84: memory: 1536M
114: memory: 768M
136: memory: 128M
@@ -0,0 +1,47 @@
# pgsample immich-postgres from 2026-09-30T13:59:31Z; host MemTotal 26519552 kB; cgroup cgroup2fs
# id 348d15f1f913acee092c068341bfa309df55f50297c4932feb4ee80ee349934f cgroup /sys/fs/cgroup/system.slice/docker-348d15f1f913acee092c068341bfa309df55f50297c4932feb4ee80ee349934f.scope limit 805306368
t_s current anon file shmem file_dirty file_writeback oom oom_kill server
0 45760512 6160384 34557952 13418496 18063360 0 0 0
none
2 118247424 5853184 104996864 32735232 16384 0 0 0
none
4 117800960 5853184 104996864 32735232 16384 0 0 0
none
6 118595584 5853184 105771008 33316864 208896 0 0 0
none
8 118595584 5853184 105771008 33316864 208896 0 0 0
none
10 118595584 5853184 105771008 33316864 208896 0 0 0 starting
12 118595584 5853184 105771008 33316864 208896 0 0 0 starting
14 119537664 5853184 106500096 34021376 208896 0 0 0 starting
16 119332864 5853184 106500096 34021376 208896 0 0 0 starting
18 145485824 18116608 117092352 39038976 1863680 0 0 0 starting
20 170803200 32448512 126496768 45715456 3223552 0 0 0 starting
23 408682496 234868736 131371008 48402432 5427200 0 0 0 starting
25 516874240 254697472 244813824 79908864 36925440 0 0 0 starting
27 560541696 254189568 286695424 91779072 4079616 0 0 0 healthy
29 677396480 386740224 328986624 117256192 36372480 0 0 0 healthy
31 654635008 262373376 357875712 121102336 33177600 0 0 0 healthy
33 666267648 245673984 398888960 141680640 3956736 0 0 0 healthy
35 739573760 255315968 462131200 173301760 35577856 0 0 0 healthy
37 751591424 255332352 473399296 176922624 7454720 0 0 0 healthy
39 733270016 216911872 493240320 178454528 5152768 0 0 0 healthy
41 733007872 216911872 493240320 178454528 5152768 0 0 0 healthy
43 733007872 216911872 493240320 178454528 5152768 0 0 0 healthy
45 733245440 216911872 493240320 178454528 5152768 0 0 0 healthy
48 733011968 216911872 493240320 178454528 5152768 0 0 0 healthy
50 733011968 216911872 493240320 178454528 5152768 0 0 0 healthy
52 737599488 216911872 497569792 180199424 5226496 0 0 0 healthy
54 737345536 216911872 497569792 180199424 5226496 0 0 0 healthy
56 737873920 216911872 497762304 180199424 5259264 0 0 0 healthy
58 737542144 216911872 497762304 180199424 5259264 0 0 0 healthy
60 737542144 216911872 497762304 180199424 5259264 0 0 0 healthy
62 737542144 216911872 497762304 180199424 5259264 0 0 0 healthy
64 737542144 216911872 497762304 180199424 5259264 0 0 0 healthy
66 737542144 216911872 497762304 180199424 5259264 0 0 0 healthy
68 739319808 216911872 499490816 180199424 1613824 0 0 0 healthy
# end 2026-09-30T14:00:44Z
swap.max=805306368 swap.peak=0
04 PM LOG [Microservices:MapRepository] Successfully imported 228571 geodata records in 8.50s (26880 records/second)
13 PM LOG [Microservices:MapRepository] Geodata import completed
kills=0
@@ -0,0 +1,66 @@
# pgsample immich-postgres from 2026-09-30T13:27:20Z; host MemTotal 26519552 kB; cgroup cgroup2fs
# id 48d54e504ffa43b768fd336db9d0f4183a5302ec09bbc8d484f29c831ee06f8b cgroup /sys/fs/cgroup/system.slice/docker-48d54e504ffa43b768fd336db9d0f4183a5302ec09bbc8d484f29c831ee06f8b.scope limit 536870912
t_s current anon file shmem oom oom_kill server
0 53809152 6221824 43098112 13737984 0 0
none
2 157814784 5865472 143831040 32735232 0 0
none
4 157290496 5865472 143831040 32735232 0 0
none
6 158117888 5865472 144642048 33316864 0 0
none
8 158113792 5865472 144642048 33316864 0 0
none
10 158113792 5865472 144642048 33316864 0 0 starting
12 158113792 5865472 144642048 33316864 0 0 starting
14 158113792 5865472 144642048 33316864 0 0 starting
17 159150080 5865472 145375232 34021376 0 0 starting
19 158871552 5877760 145375232 34021376 0 0 starting
21 176300032 15400960 151326720 37646336 0 0 starting
23 195481600 21696512 162312192 40255488 0 0 starting
25 214466560 32583680 169410560 46239744 0 0 starting
27 526487552 293597184 209551360 53637120 0 0 healthy
29 404922368 293740544 123711488 78618624 0 0 healthy
31 357392384 201281536 135938048 84963328 0 0 healthy
33 445014016 276574208 122122240 95391744 0 0 healthy
35 331247616 169922560 145092608 105074688 0 0 healthy
37 455819264 213245952 212332544 120709120 0 0 healthy
40 467836928 221859840 225554432 127393792 0 0 healthy
42 495796224 193880064 281010176 159567872 0 0 healthy
44 507748352 199618560 287035392 162627584 0 0 healthy
46 531578880 191934464 317231104 164380672 0 0 healthy
48 531529728 191946752 317308928 164458496 0 0 healthy
50 533307392 191946752 318820352 164528128 0 0 healthy
52 536846336 191946752 318894080 164601856 0 0 healthy
54 532795392 192012288 318713856 166461440 0 0 healthy
56 531513344 192012288 317214720 166531072 0 0 healthy
58 531554304 192016384 317284352 166600704 0 0 healthy
60 531419136 192016384 317353984 166670336 0 0 healthy
63 531484672 192016384 317427712 166744064 0 0 healthy
65 531693568 192016384 317497344 166813696 0 0 healthy
67 531283968 192020480 317202432 166883328 0 0 healthy
69 531349504 192020480 317280256 166961152 0 0 healthy
71 531447808 192020480 317358080 167038976 0 0 healthy
73 533458944 192020480 319193088 167690240 0 0 healthy
75 533774336 192020480 319262720 167759872 0 0 healthy
# end 2026-09-30T13:28:40Z
2026-09-30 15:27:27.298 CEST [53] LOG: background worker "logical replication launcher" (PID 60) exited with exit code 1
2026-09-30 15:27:27.300 CEST [54] LOG: shutting down
2026-09-30 15:27:27.303 CEST [54] LOG: checkpoint starting: shutdown immediate
2026-09-30 15:27:27.409 CEST [54] LOG: checkpoint complete: wrote 922 buffers (1.4%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.029 s, sync=0.068 s, total=0.110 s; sync files=301, longest=0.035 s, average=0.001 s; distance=1672 kB, estimate=1672 kB; lsn=0/18CED10, redo lsn=0/18CED10
2026-09-30 15:27:27.431 CEST [53] LOG: database system is shut down
done
server stopped
PostgreSQL init process complete; ready for start up.
2026-09-30 13:27:27.510 GMT [1] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2026-09-30 13:27:27.510 GMT [1] LOG: skipping missing configuration file "/var/lib/postgresql/data/postgresql.override.conf"
2026-09-30 15:27:27.555 CEST [1] LOG: starting PostgreSQL 16.10 (Debian 16.10-1.pgdg12+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit
2026-09-30 15:27:27.555 CEST [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
2026-09-30 15:27:27.555 CEST [1] LOG: listening on IPv6 address "::", port 5432
2026-09-30 15:27:27.562 CEST [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2026-09-30 15:27:27.576 CEST [72] LOG: database system was shut down at 2026-09-30 15:27:27 CEST
2026-09-30 15:27:27.589 CEST [1] LOG: database system is ready to accept connections
2026-09-30 15:27:40.394 CEST [86] ERROR: relation "system_metadata" does not exist at character 21
2026-09-30 15:27:40.394 CEST [86] STATEMENT: select "value" from "system_metadata" where "key" = $1
@@ -0,0 +1,5 @@
15:27:24 [1] made the drive paths this app requires: ['/mnt/felhom-drives/scratch_hdd/userdata/immich']
15:27:24 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['HDD_PATH']
15:27:24 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
15:27:54 [1] deployed, controller state=running, pinned={'immich-machine-learning': 'ghcr.io/immich-app/immich-machine-learning:v3.2.2', 'immich-postgres': 'ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0', 'immich-redis': 'redis:7-alpine', 'immich-server': 'ghcr.io/immich-app/immich-server:v3.2.2'}
deploy: True
@@ -0,0 +1,2 @@
shared_buffers|65536|8kB|configuration file|/etc/postgresql/postgresql.conf
work_mem|16384|kB|configuration file|/etc/postgresql/postgresql.conf
@@ -0,0 +1,18 @@
16:14:45 [X] stop -> 200 {'ok': True, 'message': 'Stack immich stop completed'}
16:14:50 [X] remove (with drive data) -> 409 {'ok': False, 'error': 'A(z) /mnt/felhom-drives/scratch_hdd/userdata/immich tárhely jelenleg nem elérhető — az alkalmazás nem távolítható el, amíg a meghajtó vi
16:14:50 [X] refused because the drive path cannot be resolved (R-442, fail-closed and right) — removing the app and KEEPING the drive data instead
16:15:17 [X] remove (keeping drive data) -> 200 {'ok': True, 'data': {'removed': 'immich', 'volumes_removed': ['immich_immich_ml_cache', 'immich_immich_postgres_data', 'immich_immich_redis_data'], 'hdd_paths_
16:15:26 [X] after remove: deployed=False leftovers='/opt/docker/stacks/immich'
volumes left: none
git:
branch: main
repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
sync_interval: 15m
token: <redacted>
username: ""
hub:
0
swap: 512
drill 56c4888 = live 56c4888
image-lines IDENTICAL
@@ -0,0 +1,24 @@
{
"app": "immich",
"venue": "box 9202 (drill catalog, controller 0.283.1), the product's guarded Update",
"from": {
"immich-machine-learning": "ghcr.io/immich-app/immich-machine-learning:v3.2.2",
"immich-postgres": "ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0",
"immich-redis": "redis:7-alpine",
"immich-server": "ghcr.io/immich-app/immich-server:v3.2.2"
},
"to": {
"immich-machine-learning": "ghcr.io/immich-app/immich-machine-learning:v3.2.4",
"immich-postgres": "ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0",
"immich-redis": "redis:7-alpine",
"immich-server": "ghcr.io/immich-app/immich-server:v3.2.4"
},
"verdict": "proven",
"seed_read_before": true,
"seed_read_after": true,
"healthy_after": true,
"duration_s": 58.5,
"final_phase": "done",
"measured_at": "2026-09-30T13:57:14Z",
"evidence": "felhom.eu/documentation/audits/immich-first-start-2026-09-30/box/immich/step.txt"
}
@@ -0,0 +1,4 @@
deploy/reuse immich: True
immich: seeded album drillalbume6dce142
immich: readback found=True (http 200, control passed)
C1 seed reads back BEFORE: True
@@ -0,0 +1,34 @@
before: pinned={'immich-machine-learning': 'ghcr.io/immich-app/immich-machine-learning:v3.2.2', 'immich-postgres': 'ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0', 'immich-redis': 'redis:7-alpine', 'immich-server': 'ghcr.io/immich-app/immich-server:v3.2.2'}
phase +0.0s backing-up | err=None
phase +18.5s safety-dump | err=None
phase +21.6s pulling | err=None
phase +23.6s copying | err=None
phase +26.7s starting | err=None
phase +38.0s verifying | err=None
phase +58.5s done | err=None
immich: readback found=True (http 200, control passed)
2026/09/30 13:57:15 update.go:536: [INFO] [stacks] update immich: accepted — guarded update started
2026/09/30 13:57:15 update.go:1365: [INFO] [stacks] update immich: phase checking
2026/09/30 13:57:15 update.go:786: [INFO] [stacks] update immich: ladder — the last step (3 of 3) — the catalog's current definition
2026/09/30 13:57:15 update.go:816: [INFO] [stacks] update immich: no usable copy on any tier — younger than 24h0m0s and not older than this install's deploy (2026-09-30T13:27:24Z) (found: none) — backing up first
2026/09/30 13:57:16 update.go:1365: [INFO] [stacks] update immich: phase backing-up
2026/09/30 13:57:33 update.go:831: [INFO] [stacks] update immich: precondition met after the backup — Tier 1 (own recovery unit) copy from 2026-09-30T13:57:16Z
2026/09/30 13:57:33 update.go:1365: [INFO] [stacks] update immich: phase safety-dump
2026/09/30 13:57:35 update.go:846: [INFO] [stacks] update immich: safety dump done (1 file(s)) [/mnt/felhom-drives/scratch_hdd/userdata/immich/backups/primary/immich/db-dumps/pre-restore-20260930T135733Z-immich-postgres.sql]
2026/09/30 13:57:37 undo.go:287: [INFO] [stacks] update immich: the undo copy will hold 3 named volume(s), 308.0 MiB
2026/09/30 13:57:37 update.go:1365: [INFO] [stacks] update immich: phase pinning
2026/09/30 13:57:37 pin.go:373: [INFO] [stacks] update immich: pin advanced to /opt/docker/felhom-controller/data/catalog-cache/templates/immich/docker-compose.yml (immich-machine-learning=ghcr.io/immich-app/immich-machine-learning:v3.2.4, immich-postgres=ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0, immich-redis=redis:7-alpine, immich-server=ghcr.io/immich-app/immich-server:v3.2
2026/09/30 13:57:37 update.go:1365: [INFO] [stacks] update immich: phase pulling
2026/09/30 13:57:38 update.go:1365: [INFO] [stacks] update immich: phase copying
2026/09/30 13:57:39 update.go:1365: [INFO] [stacks] update immich: phase copying
2026/09/30 13:57:40 undo.go:437: [INFO] [stacks] update immich: copied immich_immich_ml_cache → immich_immich_ml_cache.pre-update-20260930T135739Z in 460ms
2026/09/30 13:57:40 update.go:1365: [INFO] [stacks] update immich: phase copying
2026/09/30 13:57:41 undo.go:437: [INFO] [stacks] update immich: copied immich_immich_postgres_data → immich_immich_postgres_data.pre-update-20260930T135739Z in 1.343s
2026/09/30 13:57:41 update.go:1365: [INFO] [stacks] update immich: phase copying
2026/09/30 13:57:41 undo.go:437: [INFO] [stacks] update immich: copied immich_immich_redis_data → immich_immich_redis_data.pre-update-20260930T135739Z in 466ms
2026/09/30 13:57:41 update.go:1365: [INFO] [stacks] update immich: phase starting
2026/09/30 13:57:53 update.go:1365: [INFO] [stacks] update immich: phase verifying
2026/09/30 13:58:13 update.go:997: [INFO] [stacks] update immich: healthy after 20s (the app's health check passed)
2026/09/30 13:58:14 update.go:1033: [INFO] [stacks] update immich: DONE in 58s
RESULT final_phase=done after={'immich-machine-learning': 'ghcr.io/immich-app/immich-machine-learning:v3.2.4', 'immich-postgres': 'ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0', 'immich-redis': 'redis:7-alpine', 'immich-server': 'ghcr.io/immich-app/immich-server:v3.2.4'} seed_after=True verdict=proven (58.5 s)
@@ -0,0 +1,48 @@
#!/usr/bin/env python3
"""benchq.py <queue-name> <app> <svc=ref>[,<svc=ref>] [<app> <moves> ...]
Runs `upgrade-test.py --move` on bench LXC 9401 for each app IN ORDER, then copies that edge's
evidence OFF the bench into apps/<app>/bench/ before starting the next (R-320: the evidence leaves
the machine at the end of the phase that made it). One line per finished edge in benchq-<queue>.txt.
"""
import json, os, subprocess, sys, time
HERE = os.path.dirname(os.path.abspath(__file__))
BENCH = "/tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/cf537324-9792-42e8-88e0-1a0b2ea3d378/scratchpad/bench.sh"
q = sys.argv[1]
args = sys.argv[2:]
out = open(os.path.join(HERE, "..", os.environ.get("BQ", "bench"), f"benchq-{q}.txt"), "a", buffering=1)
for i in range(0, len(args), 2):
app, moves = args[i], args[i + 1].split(",")
label = app
if "@" in app: # romm@engine: a second edge of one app gets its own folder
app, tag = app.split("@", 1)
label = f"{app}-{tag}"
t0 = time.time()
out.write(f"{time.strftime('%H:%M:%S')} START {app} {moves}\n")
pre = f"cd /opt/upg && [ -d evidence/MV-{app} ] && mv evidence/MV-{app} evidence/MV-{app}-$(date +%s); "
subprocess.run([BENCH], input=pre, capture_output=True, text=True, timeout=120)
cmd = (f"cd /opt/upg && timeout 2400 python3 upgrade-test.py --soak 600 --move {app} {' '.join(moves)} "
f"> /opt/upg/MV-{app}.log 2>&1; echo rc=$?")
r = subprocess.run([BENCH], input=cmd, capture_output=True, text=True, timeout=2700)
dest = os.path.join(HERE, "..", os.environ.get("BQ", "bench"), "apps", label, "bench")
os.makedirs(dest, exist_ok=True)
pull = (f"cd /opt/upg && tar czf /tmp/ev-{app}.tgz MV-{app}.log evidence/MV-{app} 2>/dev/null; "
f"base64 -w0 /tmp/ev-{app}.tgz")
r2 = subprocess.run([BENCH], input=pull, capture_output=True, text=True, timeout=600)
import base64, io, tarfile
try:
tarfile.open(fileobj=io.BytesIO(base64.b64decode(r2.stdout.strip()))).extractall(dest)
except Exception as e:
out.write(f" evidence pull FAILED for {app}: {e}\n")
v = {}
try:
v = json.load(open(os.path.join(dest, "evidence", f"MV-{app}", "verdict.json")))
except Exception:
pass
mem = v.get("memory") or {}
peaks = {n: c.get("peak_pct") for n, c in (mem.get("containers") or {}).items()}
out.write(f"{time.strftime('%H:%M:%S')} DONE {app} {r.stdout.strip()} verdict={v.get('verdict')} "
f"read_before={v.get('seed_read_before')} read_after={v.get('seed_read_after')} "
f"abort={v.get('abort')} marks={v.get('marks')} peaks={peaks} "
f"detail={str(v.get('abort_detail'))[:160]!r} ({round(time.time()-t0)}s)\n")
out.write(f"{time.strftime('%H:%M:%S')} QUEUE {q} FINISHED\n")
@@ -0,0 +1,58 @@
"""boxmove.py <phase> <app> <sub> [<svc> <from> <to> <fmj> <tmj>] — Part B's BOX venue on 9202 (drill catalog):
prep: deploy (reuse if installed), seed through the app's own route, read it back (C1)
move: drill commit with the mark → sync → the guarded Update → engine state + seed read back → box verdict JSON
Evidence: B/apps/<app>/box/."""
import json, os, sys, time, subprocess
import walk as w
sys.path.insert(0, '/mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu/scripts')
import upgrade_fixtures_box as fixtures, upgrade_fixtures_box28 as _f28
FX = dict(_f28.FIXTURES28); FX.update(fixtures.FIXTURES) # the box set wins, as upgrade_boxport.get() decides
phase, app, sub = sys.argv[1:4]
EVD = f"{w.EV}/box/{app}"; os.makedirs(EVD, exist_ok=True)
TOK = w.SC + "/seed-tokens-box.json"
log = open(f"{EVD}/{phase}.txt", "a", buffering=1)
def say(*a):
w.say(*a); log.write(" ".join(map(str, a)) + "\n")
w.login()
toks = json.load(open(TOK)) if os.path.exists(TOK) else {}
if phase == "prep":
say(f"deploy/reuse {app}: {w.deploy(app, sub)}")
toks[app] = FX[app].seed(w, sub, say)
if isinstance(toks[app], dict) and w.GENERATED.get(app):
# the deploy secrets THIS run generated (grafana's admin password): kept beside the seed, in the 0600 scratch
# file only, so a LATER process (boxstep/undocase) can read the app back. Found 2026-09-30: grafana's box step
# read back with the default password and got 401 — the instrument, not the product.
toks[app]["__generated"] = w.GENERATED[app]
json.dump(toks, open(TOK, "w"), default=str); os.chmod(TOK, 0o600)
say(f"C1 seed reads back BEFORE: {FX[app].verify(w, sub, toks[app], say)}")
else:
svc, frm, to, fmj, tmj = sys.argv[4:9]
st = w.stack(app); before = (st.get("app_config") or {}).get("pinned_images")
pg = lambda: w.guest(f"docker exec {svc} sh -c 'cat $PGDATA/PG_VERSION' 2>&1").strip()
say(f"before: pinned={before} PG_VERSION={pg()}")
if os.environ.get("SKIPDRILL"):
say("drill: SKIPPED — the drill commit was made by an earlier attempt")
else:
r = subprocess.run([sys.executable, os.path.join(os.path.dirname(__file__), "drillmove.py"), app, svc, frm, to, fmj, tmj], capture_output=True, text=True)
say("drill:", r.stdout.strip().splitlines()[0] if r.stdout else r.stderr[-300:])
w.sync_rescan(app, to)
since = w.guest("date -u +%Y-%m-%dT%H:%M:%SZ").strip()
res = w.press_update(app, poll=1, cap_s=1800)
for p in res.get("phases", []):
log.write(f" phase +{p['t']}s {p['phase']} | err={p['error']}\n")
time.sleep(10)
after_pg = pg(); read = FX[app].verify(w, sub, toks[app], say)
conv = w.guest(f"docker logs --since {since} felhom-controller 2>&1 | grep -E 'update {app}|CONVERT' | grep -v DEBUG | cut -c1-400")
log.write(conv + "\n")
line = next((l for l in conv.splitlines() if "CONVERTED" in l), "")
st = w.stack(app)
verdict = {"app": app, "venue": "box 9202 (drill catalog, controller 0.283.1), the product's guarded Update",
"from": before, "to": (st.get("app_config") or {}).get("pinned_images"),
"verdict": "proven" if (res.get("final_phase") == "done" and read and after_pg == str(tmj)) else "failed",
"seed_read_before": True, "seed_read_after": read, "healthy_after": st.get("state") == "running",
"engine_conversion": {"service": svc, "engine": "postgres", "from": int(fmj), "to": int(tmj),
"result": "converted" if line else "not-seen", "controller_line": line.split("] ", 2)[-1] if line else ""},
"duration_s": res.get("duration_s"), "measured_at": since,
"evidence": f"felhom.eu/documentation/audits/immich-first-start-2026-09-30/box/{app}/move.txt"}
json.dump(verdict, open(f"{EVD}/box-verdict-{app}.json", "w"), indent=2)
say(f"RESULT final_phase={res.get('final_phase')} PG_VERSION={after_pg} seed_after={read} verdict={verdict['verdict']}")
@@ -0,0 +1,76 @@
"""boxstep.py <app> <sub> <svc>=<to-ref> [...] — a WITHIN-A-MAJOR step's BOX venue on 9202 (drill catalog), Part F.
prep is boxmove.py's (deploy, seed through the app's own route, C1); this presses the step:
a DRILL-only commit moves the named services and adds a ladder entry (no conversion mark), sync, rescan,
the product's guarded Update, the seed read back → box verdict JSON beside boxmove's.
The live catalog's entry is written later ONLY by `upgrade-test.py --write-ladder` from both verdicts.
Evidence: box/<app>/step.txt + box/<app>/box-verdict-<app>.json."""
import json, os, re, subprocess, sys, time
import walk as w
sys.path.insert(0, "/mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu/scripts")
import upgrade_fixtures_box as fixtures, upgrade_fixtures_box28 as _f28
FX = dict(_f28.FIXTURES28); FX.update(fixtures.FIXTURES) # the box set wins, as upgrade_boxport.get() decides
app, sub = sys.argv[1:3]
moves = dict(a.split("=", 1) for a in sys.argv[3:])
EVD = f"{w.EV}/box/{app}"; os.makedirs(EVD, exist_ok=True)
TOK = w.SC + "/seed-tokens-box.json"
log = open(f"{EVD}/step.txt", "a", buffering=1)
def say(*a):
w.say(*a); log.write(" ".join(map(str, a)) + "\n")
D = "/mnt/5_hdd/felhom.eu/drill/app-catalog-drill"
w.login()
toks = json.load(open(TOK))
if isinstance(toks.get(app), dict) and toks[app].get("__generated"):
w.GENERATED[app] = toks[app]["__generated"]
st = w.stack(app); before = (st.get("app_config") or {}).get("pinned_images")
say(f"before: pinned={before}")
if not os.environ.get("SKIPDRILL"):
subprocess.run(["git", "-C", D, "pull", "-q", "--rebase", "origin", "main"], check=True)
comp = f"{D}/templates/{app}/docker-compose.yml"; fy = f"{D}/templates/{app}/.felhom.yml"
s = open(comp).read(); pins, cur = {}, None
for line in s.splitlines():
m = re.match(r"^ ([a-z0-9-]+):\s*$", line)
if m: cur = m.group(1)
m = re.match(r"^\s+image:\s*(\S+)", line)
if m and cur: pins[cur] = m.group(1)
out, cur = [], None
for line in s.splitlines():
m = re.match(r"^ ([a-z0-9-]+):\s*$", line)
if m: cur = m.group(1)
mi = re.match(r"^(\s+image:\s*)(\S+)\s*$", line)
if mi and cur in moves:
line = mi.group(1) + moves[cur]
out.append(line)
open(comp, "w").write("\n".join(out) + "\n")
top = dict(pins); top.update(moves)
entry = {"from": pins, "to": top, "verdict": "proven", "tested_at": "DRILL", "harness_version": 4,
"evidence": "DRILL (box proof in progress)", "marks": {"files_may_change": False, "needs_person": None, "memory_tight": False}}
f = open(fy).read()
f = f.rstrip("\n") + "\n - " + json.dumps(entry) + "\n" if "update_ladder:" in f else f.rstrip("\n") + "\nupdate_ladder:\n - " + json.dumps(entry) + "\n"
open(fy, "w").write(f)
subprocess.run(["git", "-C", D, "commit", "-q", "-am", f"DRILL {app}: {moves} (box proof)"], check=True)
subprocess.run(["git", "-C", D, "push", "-q", "origin", "main"], check=True, capture_output=True)
say("drill:", subprocess.run(["git", "-C", D, "log", "--oneline", "-1"], capture_output=True, text=True).stdout.strip())
w.sync_rescan(app, next(iter(moves.values())))
since = w.guest("date -u +%Y-%m-%dT%H:%M:%SZ").strip()
res = w.press_update(app, poll=1, cap_s=1800)
for p in res.get("phases", []):
log.write(f" phase +{p['t']}s {p['phase']} | err={p['error']}\n")
time.sleep(10)
read = FX[app].verify(w, sub, toks[app], say)
lines = w.guest(f"docker logs --since {since} felhom-controller 2>&1 | grep -E 'update {app}' | grep -v DEBUG | cut -c1-400")
log.write(lines + "\n")
st = w.stack(app); after = (st.get("app_config") or {}).get("pinned_images")
verdict = {"app": app, "venue": "box 9202 (drill catalog, controller 0.283.1), the product's guarded Update",
"from": before, "to": after,
"verdict": "proven" if (res.get("final_phase") == "done" and read and all(after.get(k) == v for k, v in moves.items())) else "failed",
"seed_read_before": True, "seed_read_after": read, "healthy_after": st.get("state") == "running",
"duration_s": res.get("duration_s"), "final_phase": res.get("final_phase"), "measured_at": since,
"evidence": f"felhom.eu/documentation/audits/immich-first-start-2026-09-30/box/{app}/step.txt"}
json.dump(verdict, open(f"{EVD}/box-verdict-{app}.json", "w"), indent=2)
say(f"RESULT final_phase={res.get('final_phase')} after={after} seed_after={read} verdict={verdict['verdict']} ({res.get('duration_s')} s)")
@@ -0,0 +1,25 @@
#!/bin/bash
# pgsample.sh <container> <outfile> [max_s=900] [server=immich-server] — sample a container's cgroup memory every 2 s from
# the moment it exists (its birth) until <server> is healthy AND the server log shows the geodata import done, or max_s.
# Columns: t_s current anon file shmem oom oom_kill limit server_health
C=$1; OUT=$2; MAX=${3:-900}; SRV=${4:-immich-server}
echo "# pgsample $C from $(date -u +%FT%TZ); host MemTotal $(awk '/MemTotal/{print $2}' /proc/meminfo) kB; cgroup $(stat -fc %T /sys/fs/cgroup)" > $OUT
until id=$(docker inspect -f '{{.Id}}' $C 2>/dev/null); do sleep 0.5; done
cg=""; for i in $(seq 1 60); do cg=$(find /sys/fs/cgroup -maxdepth 4 -type d -name "*$id*" 2>/dev/null | head -1); [ -n "$cg" ] && break; sleep 0.5; done
echo "# id $id cgroup $cg limit $(cat $cg/memory.max)" >> $OUT
echo "t_s current anon file shmem file_dirty file_writeback oom oom_kill server" >> $OUT
t0=$(date +%s); done_seen=0
while :; do
t=$(( $(date +%s) - t0 ))
st=$(awk '$1=="anon"{a=$2} $1=="file"{f=$2} $1=="shmem"{s=$2} $1=="file_dirty"{d=$2} $1=="file_writeback"{w=$2} END{print a, f, s, d+0, w+0}' $cg/memory.stat 2>/dev/null)
ev=$(awk '$1=="oom"{o=$2} $1=="oom_kill"{k=$2} END{print o, k}' $cg/memory.events 2>/dev/null)
h=$(docker inspect -f '{{.State.Health.Status}}' $SRV 2>/dev/null || echo none)
echo "$t $(cat $cg/memory.current 2>/dev/null) $st $ev $h" >> $OUT
if [ "$h" = healthy ] && docker logs $SRV 2>&1 | grep -q 'Geodata import completed'; then done_seen=$((done_seen+1)); fi
[ $done_seen -ge 15 ] && break
[ $t -ge $MAX ] && break
# a replaced container (restart keeps the id; a recreate does not)
[ -d "$cg" ] || { echo "# cgroup gone at $t s" >> $OUT; break; }
sleep 2
done
echo "# end $(date -u +%FT%TZ)" >> $OUT
@@ -0,0 +1,17 @@
#!/usr/bin/env python3
"""probe.py up|down <app> — deploy a catalog template at its CURRENT pins on the bench and leave it running (fixture discovery)."""
import sys, json, importlib.util
sys.argv0 = sys.argv[:]
spec = importlib.util.spec_from_file_location("ut", "/opt/upg/upgrade-test.py"); ut = importlib.util.module_from_spec(spec)
sys.argv = ["x"]; spec.loader.exec_module(ut)
act, app = sys.argv0[1], sys.argv0[2]
wd = ut.ROOT / "work" / f"probe-{app}"; proj = f"probe{app.replace('-','')}"
if act == "down":
print(ut.compose(wd, proj, "down", "-v", "--remove-orphans").returncode); sys.exit()
felhom = (ut.TEMPLATES / app / ".felhom.yml").read_text(); ct = (ut.TEMPLATES / app / "docker-compose.yml").read_text()
env = ut.cvp.build_env(app, felhom, ct)
json.dump(env, open(f"/opt/upg/probe-{app}.env.json", "w"))
ut.render(app, ut.template_images(app, ut.TEMPLATES), wd, env)
r = ut.compose(wd, proj, "up", "-d"); print("up rc", r.returncode, r.stderr[-400:])
ok, secs, st = ut.settle(proj, wd); print("settled", ok, secs, json.dumps(st))
for n in st: print(n, ut.container_ip(n))
@@ -0,0 +1,60 @@
#!/usr/bin/env python3
"""Point guest 9202 at the drill catalog (and a 90 s health timeout), or restore the saved config.
`09` §6.5: `git.repo_url` alone is INERT (R-615) — the cache dir must go too. The saved copy is
`controller.yaml.pre-immich0930` (NOT the older `.pre-28`, which a restore must never pick up).
"""
import re, sys, io
sys.path.insert(0, '.')
import walk as w
VOL = "/var/lib/docker/volumes/felhom-controller-data/_data"
DRILL_REPO = "https://gitea.dooplex.hu/admin/app-catalog-drill.git"
def creds():
for l in io.open("/home/kisfenyo/.git-credentials").read().strip().split("\n"):
m = re.match(r'https://(admin):([^@]+)@gitea\.dooplex\.hu', l)
if m:
return m.group(1), m.group(2)
raise SystemExit("no admin credential")
def to_drill():
u, t = creds()
print(w.guest(f"""
set -e
test -f {VOL}/controller.yaml.pre-immich0930 || cp -p {VOL}/controller.yaml {VOL}/controller.yaml.pre-immich0930
python3 - <<'PY'
import re
p = "{VOL}/controller.yaml"
s = open(p).read()
s = re.sub(r'(^\\s+repo_url: ).*$', r'\\g<1>{DRILL_REPO}', s, count=1, flags=re.M)
s = re.sub(r'(^git:(?:\\n\\s+.*)*?\\n\\s+token: ).*$', r'\\g<1>"{t}"', s, count=1, flags=re.M)
s = re.sub(r'(^git:(?:\\n\\s+.*)*?\\n\\s+username: ).*$', r'\\g<1>"{u}"', s, count=1, flags=re.M)
if not re.search(r'^update:', s, re.M):
s += "update:\\n health_timeout: 90s\\n"
open(p, "w").write(s)
PY
rm -rf {VOL}/catalog-cache {VOL}/data/catalog-cache
docker restart felhom-controller >/dev/null
sleep 15
grep -A6 '^git:' {VOL}/controller.yaml | sed 's/token:.*/token: <redacted>/'
grep -A2 '^update:' {VOL}/controller.yaml
"""))
def restore():
print(w.guest(f"""
set -e
cp -p {VOL}/controller.yaml.pre-immich0930 {VOL}/controller.yaml
rm -rf {VOL}/catalog-cache {VOL}/data/catalog-cache
docker restart felhom-controller >/dev/null
sleep 15
grep -A6 '^git:' {VOL}/controller.yaml | sed 's/token:.*/token: <redacted>/'
grep -c '^update:' {VOL}/controller.yaml || true
"""))
if __name__ == "__main__":
to_drill() if sys.argv[1] == "drill" else restore()
@@ -0,0 +1,560 @@
#!/usr/bin/env python3
"""walk.py — ONE app's full update walk on guest 9202, through the product's own endpoints.
EVIDENCE, NOT PRODUCT. It presses exactly the buttons a person presses:
POST /api/stacks/<n>/deploy · POST /api/sync · POST /api/stacks/rescan
POST /api/stacks/<n>/update · POST /api/stacks/<n>/remove
and reads GET /api/stacks/<n>. No controller code exists for it.
The walk, per `09` §6.4 and the update-night brief §4:
1 deploy from the DRILL catalog at the LIVE pin
2 seed through the app's OWN front door (R-156: never a volume, never SQL)
3 read the seed back <- control C1; a fixture that cannot prove itself proves nothing
4 „Mentés most"
5 commit the real one-step bump to the DRILL repo, sync, rescan, read the badge in BOTH languages
6 press the guarded Update, record every phase with timestamps
7 read the seed back through the front door
8 the four version observables side by side
9 write the verdict record in `09`'s JSON shape
`inconclusive` is a first-class verdict and is NEVER collapsed into `failed`.
"""
import argparse, json, os, re, subprocess, sys, time
from datetime import datetime, timezone
SC = os.environ.get('SC', '/tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/cf537324-9792-42e8-88e0-1a0b2ea3d378/scratchpad')
EV = os.environ.get('EV', '/mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/immich-first-start-2026-09-30')
DRILL = "/mnt/5_hdd/felhom.eu/drill/app-catalog-drill"
# GUEST=9201 selects demo-hp's hub-enabled guest (the mail proof); default 9202, the scratch guest.
GUEST = os.environ.get("GUEST", "9202")
BASE = os.environ.get("BASE") or {"9202": "https://192.168.0.114", "9201": "https://192.168.0.155"}[GUEST]
DOMAIN = os.environ.get("DOMAIN", "enkisfelhom.hu")
HOSTHDR = f"Host: felhom.{DOMAIN}"
HP = "demo-hp"
LOG = []
def say(*a):
line = " ".join(str(x) for x in a)
ts = datetime.now().strftime("%H:%M:%S")
print(f"{ts} {line}", flush=True)
LOG.append(f"{ts} {line}")
def sh(args, timeout=300, inp=None):
try:
return subprocess.run(args, capture_output=True, text=True, timeout=timeout, input=inp)
except (subprocess.TimeoutExpired, OSError) as e:
return subprocess.CompletedProcess(args, 124, "", f"{e}")
def guest(script, timeout=600):
"""Run a bash script inside guest 9202. Piped as a file — never as an argument (quoting)."""
# ONE TEMP FILE PER CALL (night 2026-09-23): the shared /tmp/w<guest>.sh swapped scripts under
# two concurrent walks (memory: guest-helper-shares-one-tmp-file).
import secrets as _s
t = f"/tmp/w{GUEST}-{os.getpid()}-{_s.token_hex(4)}.sh"
r = sh(["ssh", "-o", "ConnectTimeout=20", "-o", "StrictHostKeyChecking=accept-new", HP,
f"export LC_ALL=C; cat > {t}; pct push {GUEST} {t} {t} >/dev/null 2>&1; "
f"pct exec {GUEST} -- bash {t}; pct exec {GUEST} -- rm -f {t}; rm -f {t}"],
timeout=timeout, inp=script)
return r.stdout or ""
def login():
pw = open(f"{SC}/.ctlpw").read().strip()
sh(["curl", "-sk", "-D", f"{SC}/hdr{os.getpid()}.txt", "-o", "/dev/null", "-H", HOSTHDR,
"-X", "POST", "--data-urlencode", f"password={pw}", f"{BASE}/login"])
h = open(f"{SC}/hdr{os.getpid()}.txt").read()
m = re.search(r"felhom_session=[A-Za-z0-9._-]+", h, re.I)
if not m:
sys.exit("login failed: no session cookie")
open(f"{SC}/sess{os.getpid()}.txt", "w").write(m.group(0))
r = sh(["curl", "-sk", "-L", "-H", HOSTHDR, "-H", f"Cookie: {m.group(0)}", f"{BASE}/"])
c = re.search(r'<meta name="csrf-token" content="([^"]+)"', r.stdout or "")
if not c:
sys.exit("login failed: no csrf token")
open(f"{SC}/csrf{os.getpid()}.txt", "w").write(c.group(1))
def ctl(method, path, data=None, raw=False, tries=2):
"""One controller API call. Re-logs in once on a 302/401 — the controller's session store is
in memory, so any controller restart during the night invalidates it silently."""
for attempt in range(tries):
sess = open(f"{SC}/sess{os.getpid()}.txt").read().strip()
csrf = open(f"{SC}/csrf{os.getpid()}.txt").read().strip()
args = ["curl", "-sk", "-H", HOSTHDR, "-H", f"Cookie: {sess}", "-w", "\n%{http_code}"]
if method != "GET":
args += ["-H", f"X-CSRF-Token: {csrf}", "-H", "Content-Type: application/json",
"-X", method]
if data is not None:
args += ["--data", json.dumps(data)]
args.append(f"{BASE}{path}")
r = sh(args)
body, _, code = (r.stdout or "").rpartition("\n")
if code.strip() in ("302", "401") and attempt + 1 < tries:
login()
continue
if raw:
return code.strip(), body
try:
return code.strip(), json.loads(body)
except Exception:
return code.strip(), {"_raw": body[:600]}
return code.strip(), {"_raw": body[:600]}
def page(path):
sess = open(f"{SC}/sess{os.getpid()}.txt").read().strip()
r = sh(["curl", "-sk", "-H", HOSTHDR, "-H", f"Cookie: {sess}", f"{BASE}{path}"])
return r.stdout or ""
GATE = {} # sub -> the felhom_gate cookie the household's browser would hold (setup gate, v0.280.0)
def _loc(out):
m = re.search(r"(?im)^location:\s*(\S+)", out or "")
return m.group(1) if m else ""
def gate_cookie(sub):
"""Pass the setup gate (`09` decision 46) the way the HOUSEHOLD does: the app host redirects to the
dashboard's /__gate/start, which (with the dashboard session) redirects back to the app host's
/__felhom_gate/cb, which sets `felhom_gate`. Never printed."""
import urllib.parse
sess = open(f"{SC}/sess{os.getpid()}.txt").read().strip()
r = sh(["curl", "-sk", "-D", "-", "-o", "/dev/null", "-H", "Accept: text/html", "-H", f"Host: {sub}.{DOMAIN}", f"{BASE}/"])
loc = _loc(r.stdout)
if "/__gate/start" not in loc:
GATE[sub] = ""
return "" # not gated (open, or no gate for this app)
u = urllib.parse.urlsplit(loc)
r = sh(["curl", "-sk", "-D", "-", "-o", "/dev/null", "-H", "Accept: text/html", "-H", f"Host: {u.hostname}", "-H", f"Cookie: {sess}",
f"{BASE}{u.path}?{u.query}"])
loc = _loc(r.stdout)
u = urllib.parse.urlsplit(loc)
if "/__felhom_gate/cb" not in u.path:
say(f" gate: the dashboard did not hand back a callback for {sub} ({loc[:80]})")
return ""
r = sh(["curl", "-sk", "-D", "-", "-o", "/dev/null", "-H", "Accept: text/html", "-H", f"Host: {u.hostname}", f"{BASE}{u.path}?{u.query}"])
m = re.search(r"(?im)^set-cookie:\s*(felhom_gate=[^;\r\n]+)", r.stdout or "")
GATE[sub] = m.group(1) if m else ""
say(f" gate: {sub} is gated — passed as the household (cookie {'set' if GATE[sub] else 'NOT set'})")
return GATE[sub]
def app_curl(sub, path, *extra, method=None, data=None, timeout=45, _retry=True):
"""A call to the APP's own front door on 9202 — the household's route, not ours. Carries the setup
gate's cookie when the app is gated, merged into a fixture's own Cookie header (never a second one)."""
raw = list(extra)
gc = GATE[sub] if sub in GATE else gate_cookie(sub)
ext = list(raw)
if gc:
merged = False
for i, a in enumerate(ext):
if isinstance(a, str) and a.lower().startswith("cookie:") and i > 0 and ext[i - 1] == "-H":
ext[i] = a + "; " + gc
merged = True
if not merged:
ext = ["-H", f"Cookie: {gc}"] + ext
args = ["curl", "-sSk", "--max-time", str(timeout), "-H", f"Host: {sub}.{DOMAIN}",
"-w", "\n%{http_code} %{redirect_url}"]
if method:
args += ["-X", method]
if data is not None:
args += ["--data-binary", "@-"]
args += ext + [f"{BASE}{path}"]
r = sh(args, timeout=timeout + 30, inp=data)
body, _, tail = (r.stdout or "").rpartition("\n")
code, _, redir = tail.strip().partition(" ")
if _retry and "/__gate/start" in redir:
GATE.pop(sub, None) # the gate cookie expired or was never taken — log in as the household again
return app_curl(sub, path, *raw, method=method, data=data, timeout=timeout, _retry=False)
return r.returncode, code.strip(), body
def stack(name):
_, d = ctl("GET", f"/api/stacks/{name}")
return (d.get("data") or {}) if isinstance(d, dict) else {}
def wait_app(sub, path="/", want=("200", "302", "303", "401", "403"), tries=60, delay=5):
"""Settling says the container runs; this says the APP answers. Not the same thing."""
last = None
for _ in range(tries):
rc, code, _ = app_curl(sub, path, timeout=15)
last = (rc, code)
if rc == 0 and code in want:
return True
time.sleep(delay)
say(f" app never answered on {sub}{path} (last rc={last[0]} code={last[1]})")
return False
# ------------------------------------------------------------------ the walk
DRIVE = "/mnt/felhom-drives/scratch_hdd/userdata"
# What THIS run generated for a deploy, per app. Deploy secrets are ENCRYPTED AT REST in
# `app.yaml` (`ENC:…`), which is right and which means a fixture cannot read an app's admin
# password back off the box — the household sees it once. So the value the harness itself
# generated is kept here for the life of the run, and nowhere else.
GENERATED = {}
def deploy_values(name, sub):
"""Fill EVERY required deploy field the way the wizard would, by asking the box what this app
asks for — `GET /api/stacks/<n>/deploy-fields` — instead of assuming DOMAIN+SUBDOMAIN.
Measured 2026-09-21: three apps in one batch refused at the deploy with a correct 400 because
a required field was absent — `HDD_PATH` (navidrome, audiobookshelf) and an admin password
(grafana). The refusals happen BEFORE anything is created (`deploy.go:324`), which is the only
reason this was safe to discover by running it (live-probes rule).
A `path` field must name a directory that ALREADY EXISTS (`deploy.go:330`), so one is made on
the scratch drive first — the same act the drive browser performs for a household.
"""
code, d = ctl("GET", f"/api/stacks/{name}/deploy-fields")
fields = (((d.get("data") or {}).get("metadata") or {}).get("deploy_fields")) or []
values = {"DOMAIN": DOMAIN, "SUBDOMAIN": sub}
made = []
for f in fields:
ev, ty = f.get("env_var"), f.get("type")
if ev in values:
continue
# `type: password` is MANDATORY whatever `required` says — `deploy.go:305-312` refuses
# when the caller sends none, deliberately ("the user needs to know their password"),
# while `.felhom.yml` declares `required: false` and the API serves that verbatim. A
# caller that trusts the contract gets a 400. Measured tonight on grafana; filed.
if not f.get("required") and ty != "password":
continue # the controller generates the optional secrets itself
if ty == "path":
p = f"{DRIVE}/{name}"
values[ev] = p
made.append(p)
elif ty in ("secret", "password"):
import secrets as _s
values[ev] = "Drill-" + _s.token_hex(12)
GENERATED.setdefault(name, {})[ev] = values[ev]
elif f.get("default"):
values[ev] = f["default"]
else:
values[ev] = f"drill-{name}"
if made:
guest("mkdir -p " + " ".join(made) + "; ls -ld " + " ".join(made))
say(f" [1] made the drive paths this app requires: {made}")
extra = [k for k in values if k not in ("DOMAIN", "SUBDOMAIN")]
if extra:
say(f" [1] required fields filled beyond DOMAIN/SUBDOMAIN: {extra}")
return values
def deploy(name, sub, extra_values=None):
st = stack(name)
if st.get("deployed"):
say(f" [1] {name} already deployed — reusing")
return True
values = deploy_values(name, sub)
if extra_values:
values.update(extra_values)
body = {"values": values}
if os.environ.get("KEPT"): # decision 36: the household's answer when the drive holds old data ("fresh" moves it aside, deletes nothing)
body["kept_data"] = os.environ["KEPT"]
code, d = ctl("POST", f"/api/stacks/{name}/deploy", body)
say(f" [1] deploy -> {code} {str(d)[:120]}")
if code != "202":
return False
# WAIT FOR `deployed`, NOT FOR `running`. Measured 2026-09-21 on tandoor: docker reported the
# container `healthy` while the controller's own state read `unhealthy` — a gate on `running`
# alone therefore times out on an app that is up. The state is RECORDED rather than required;
# the real gate is the fixture's own `wait_app`, which asks whether the APP answers.
seen = None
for _ in range(90):
time.sleep(5)
st = stack(name)
seen = st.get("state")
# `deployed` alone is NOT enough and `state` alone is NOT right. Measured 2026-09-21:
# tandoor reads `unhealthy` while serving (R-618), so gating on "running" hangs; and romm
# read `deployed=True, state=degraded, pinned_images=None` twenty seconds in, i.e. the
# deploy had not finished writing app.yaml. The PIN is the deploy's own completion mark
# (`runComposeDeploy` writes it), so that is what to wait for.
pins = (st.get("app_config") or {}).get("pinned_images")
if st.get("deployed") and pins and seen in ("running", "unhealthy", "degraded"):
say(f" [1] deployed, controller state={seen}, "
f"pinned={(st.get('app_config') or {}).get('pinned_images')}")
if seen != "running":
say(f" [1] NOTE: the controller's own state is {seen!r}, not 'running' — recorded, "
f"not treated as a failure; the fixture's front-door wait is the real gate")
return True
say(f" [1] never became deployed (last controller state={seen!r})")
return False
def backup_now(name):
"""R-648 (2026-09-23): NO whole-box „Mentés most" from a drill, ever.
`POST /api/backup/run` is the only backup endpoint and it is WHOLE-BOX: on 9201 it stopped and
restarted 9 of 10 standing apps twice, and on 9202 it broke a deploy in flight (R-634). The product
has NO per-app backup endpoint (router.go: /backup/run, /backup/tier2 only); the per-app backup
exists only inside the guarded update, whose `backing-up` phase calls RunAppBackupNow for the one
app. So this presses nothing: the update takes the throwaway app's own backup, and says so in its
phase list. A seed written "after the backup" is therefore written before the update's own backup
— the undo's last-second copy is still the one that must bring it back."""
say(f" [4] backup press SKIPPED for {name} (R-648: whole-box only; the update's backing-up phase backs up {name} alone)")
return None
def drill_bump(app, frm, to, service_hint=None):
"""Serialised across concurrent walks: one git working tree, one lock."""
import fcntl
with open(f"{SC}/drill.lock", "w") as lk:
fcntl.flock(lk, fcntl.LOCK_EX)
sh(["git", "-C", DRILL, "pull", "-q", "--rebase", "origin", "main"], timeout=120)
return _drill_bump(app, frm, to, service_hint)
def _drill_bump(app, frm, to, service_hint=None):
"""Commit the edge to the DRILL repo. catalog_since set by hand (the drill repo has no gates).
`frm`/`to` may be comma-separated lists of the SAME length: an app whose own version lives in
two images (adventurelog's backend and frontend) moves both in one edge, while its engine
sidecar stays where it is — `09` §3b Q3's rule is per SERVICE, and an app-half edge must move
every service that carries the app's own version and no others.
"""
comp = f"{DRILL}/templates/{app}/docker-compose.yml"
fy = f"{DRILL}/templates/{app}/.felhom.yml"
s = open(comp).read()
froms = [x.strip() for x in frm.split(",") if x.strip()]
tos = [x.strip() for x in to.split(",") if x.strip()]
if len(froms) != len(tos):
say(f" [5] from/to lists differ in length: {froms} vs {tos}")
return None
for f1, t1 in zip(froms, tos):
if f"image: {f1}" not in s:
say(f" [5] FROM ref not found in compose: {f1}")
return None
s = s.replace(f"image: {f1}", f"image: {t1}")
open(comp, "w").write(s)
f = open(fy).read()
today = datetime.now().strftime("%Y-%m-%d")
f = re.sub(r'^catalog_since:.*$', f'catalog_since: "{today}"', f, count=1, flags=re.M)
open(fy, "w").write(f)
sh(["git", "-C", DRILL, "add", "-A"])
sh(["git", "-C", DRILL, "commit", "-q", "-m", f"DRILL {app}: {frm} -> {to}"])
r = sh(["git", "-C", DRILL, "push", "-q", "origin", "main"], timeout=120)
h = sh(["git", "-C", DRILL, "rev-parse", "--short=12", "HEAD"]).stdout.strip()
say(f" [5] drill commit {h}: {app} {frm} -> {to} (push rc={r.returncode})")
return h
def sync_rescan(expect_app=None, expect_ref=None, tries=12, delay=5):
"""Sync, rescan, and — when told what to expect — WAIT FOR THE BADGE TO CATCH UP.
R-607: `POST /api/sync` answers "nincs valtozas" while the catalog HAS moved, and
`catalog_images` stays stale until a separate rescan. Tonight showed the rescan alone is not
enough either: mealie's badge read "Naprakesz" seconds after its bump was pushed, and the
Update that followed moved nothing and still reported "Frissitve". So when the caller knows
which reference should appear, this polls for it and SAYS HOW LONG IT TOOK — which is the
NUMBER R-607 asks for and has never had.
"""
t0 = time.time()
ctl("POST", "/api/sync")
time.sleep(2)
ctl("POST", "/api/stacks/rescan")
time.sleep(2)
if not expect_app or not expect_ref:
return None
for i in range(tries):
cat = stack(expect_app).get("catalog_images") or {}
if expect_ref in cat.values():
waited = round(time.time() - t0, 1)
if i:
say(f" [sync] the badge needed {waited}s and {i+1} sync+rescan rounds to catch up "
f"to {expect_ref} — R-607's window, measured")
return waited
time.sleep(delay)
ctl("POST", "/api/sync")
time.sleep(1)
ctl("POST", "/api/stacks/rescan")
say(f" [sync] the badge NEVER caught up to {expect_ref} in {round(time.time()-t0,1)}s — "
f"catalog_images = {stack(expect_app).get('catalog_images')}")
return None
def badges(name):
out = {}
for lang, suffix in (("hu", ""), ("en", "?lang=en")):
h = page(f"/apps/{name}{suffix}")
m = re.findall(r'<span class="tag tag-[^"]*"[^>]*title="([^"]*)"[^>]*>([^<]*)<', h)
out[lang] = [{"title": a.strip(), "text": b.strip()} for a, b in m][:3]
return out
def press_update(name, poll=1.0, cap_s=1800):
code, d = ctl("POST", f"/api/stacks/{name}/update")
say(f" [6] Update -> {code} {str(d)[:220]}")
if code not in ("202", "200"):
return {"accepted": False, "http": code, "refusal": d, "phases": [], "duration_s": 0}
phases, seen, t0 = [], None, time.time()
while time.time() - t0 < cap_s:
st = stack(name)
ph = st.get("update_phase")
if ph != seen:
seen = ph
rec = {"t": round(time.time() - t0, 1), "phase": ph,
"label": st.get("update_phase_label"), "updating": st.get("updating"),
"error": st.get("update_error"), "hold": st.get("hold_reason")}
phases.append(rec)
say(f" +{rec['t']:>6.1f}s phase={ph} label={rec['label']} "
f"err={rec['error']} hold={rec['hold']}")
if not st.get("updating") and ph in ("done", "failed", "undone", None) and time.time() - t0 > 3:
break
time.sleep(poll)
st = stack(name)
return {"accepted": True, "http": code, "phases": phases,
"duration_s": round(time.time() - t0, 1),
"final_phase": st.get("update_phase"), "update_error": st.get("update_error"),
"hold_reason": st.get("hold_reason"), "state": st.get("state")}
def observables(name):
st = stack(name)
ac = st.get("app_config") or {}
live = guest(f"""
grep -E '^\\s+image:' /opt/docker/stacks/{name}/docker-compose.yml 2>/dev/null | sed 's/^ *//'
echo '---inspect---'
for c in $(docker ps -a --filter label=com.docker.compose.project={name} --format '{{{{.Names}}}}'); do
echo -n "$c "; docker inspect "$c" --format '{{{{.Config.Image}}}} running={{{{.State.Running}}}} restarts={{{{.RestartCount}}}}'
done
""")
a, _, b = live.partition("---inspect---")
return {
"pinned_images": ac.get("pinned_images"),
"installed_images": {k: (v.get("ref") if isinstance(v, dict) else v)
for k, v in (ac.get("installed_images") or {}).items()},
"catalog_images": st.get("catalog_images"),
"live_compose_image_lines": [x for x in a.strip().splitlines() if x.strip()],
"docker_inspect": [x for x in b.strip().splitlines() if x.strip()],
}
def app_logs(name, lines=400):
"""The app's own container log, DECODED. The endpoint answers a JSON envelope whose `logs` is
one string with escaped newlines — a scan over the envelope sees a single enormous line and
finds nothing, which reads exactly like "the app printed no migration line" and is not. R-96
rule 3 in a new place: an absent line is not evidence when the instrument cannot see lines."""
code, d = ctl("GET", f"/api/stacks/{name}/logs?lines={lines}")
if isinstance(d, dict):
data = d.get("data")
if isinstance(data, dict) and isinstance(data.get("logs"), str):
return data["logs"]
if isinstance(d.get("_raw"), str):
return d["_raw"]
return str(d)
def write_verdict(rec, appdir):
os.makedirs(appdir, exist_ok=True)
p = os.path.join(appdir, "verdict.json")
json.dump(rec, open(p, "w"), indent=2, ensure_ascii=False)
say(f" [9] verdict {rec['verdict']} -> {p}")
def remove(name):
"""Remove through the PRODUCT, never `docker rm` (live-probes rule). The remove endpoint
refuses a running stack — `409 still running` — so the stop is part of the act, not a tidy-up."""
c1, d1 = ctl("POST", f"/api/stacks/{name}/stop")
say(f" [X] stop -> {c1} {str(d1)[:100]}")
for _ in range(24):
time.sleep(5)
if stack(name).get("state") != "running":
break
code, d = ctl("POST", f"/api/stacks/{name}/remove",
{"remove_hdd_data": True, "remove_backups": True})
say(f" [X] remove (with drive data) -> {code} {str(d)[:160]}")
if code == "409":
# R-442's fail-closed guard: when the storage subsystem cannot RESOLVE the app's drive
# path, the removal is REFUSED and the app is kept rather than half-deleted. On guest 9202
# `/api/disks` answers `agent not configured`, so every app deployed with an HDD_PATH hits
# this. The household's other choice — remove the app, KEEP the data — is accepted, and the
# harness takes it, then tidies its own directory by name at teardown.
say(" [X] refused because the drive path cannot be resolved (R-442, fail-closed and right)"
" — removing the app and KEEPING the drive data instead")
code, d = ctl("POST", f"/api/stacks/{name}/remove",
{"remove_hdd_data": False, "remove_backups": True})
say(f" [X] remove (keeping drive data) -> {code} {str(d)[:160]}")
time.sleep(5)
st = stack(name)
left = guest(f"ls -d /opt/docker/stacks/{name} 2>/dev/null; "
f"docker ps -a --filter label=com.docker.compose.project={name} --format '{{{{.Names}}}}'")
say(f" [X] after remove: deployed={st.get('deployed')} leftovers={left.strip()!r}")
return code
def app_env(name, key):
"""Read one deploy value the CUSTOMER was given (e.g. the generated admin password) from the
app's own `app.yaml`. This is not seeding — it is how the household logs in; the controller
shows them the same value. Data still goes in through the app's own front door."""
out = guest(f"grep -E '^\\s*{key}:' /opt/docker/stacks/{name}/app.yaml 2>/dev/null | head -1")
if ":" in out:
return out.split(":", 1)[1].strip().strip('"').strip("'")
return ""
def snapshots(name):
"""The restorable copies the backups page offers for this app."""
code, d = ctl("GET", f"/api/backup/snapshots?stack={name}")
data = d.get("data") if isinstance(d, dict) else None
if isinstance(data, dict):
for k in ("snapshots", "items", "restore_points"):
if isinstance(data.get(k), list):
return data[k]
return data if isinstance(data, list) else []
def restore(name, snapshot_id=None, wait_s=1200):
"""The household's own way out: the „Visszaállítás a mentésből" button on the backups page.
A FORM post, not an API call — `POST /backup/restore` with `_csrf`, `stack_name`,
`snapshot_id` — because that is the button the sentence tells them to press.
"""
snaps = snapshots(name)
if snapshot_id is None:
if not snaps:
say(f" [R] no restorable copy offered for {name}")
return {"ok": False, "why": "no snapshot offered", "snapshots": snaps}
first = snaps[0]
snapshot_id = first.get("id") or first.get("snapshot_id") or first.get("short_id")
say(f" [R] restoring {name} from snapshot {snapshot_id!r} (of {len(snaps)} offered)")
sess = open(f"{SC}/sess{os.getpid()}.txt").read().strip()
csrf = open(f"{SC}/csrf{os.getpid()}.txt").read().strip()
r = sh(["curl", "-sk", "-D", "-", "-o", "/dev/null", "-H", HOSTHDR, "-H", f"Cookie: {sess}",
"-X", "POST",
"--data-urlencode", f"_csrf={csrf}",
"--data-urlencode", f"stack_name={name}",
"--data-urlencode", f"snapshot_id={snapshot_id}",
f"{BASE}/backup/restore"], timeout=180)
head = (r.stdout or "").split("\n")[0].strip()
loc = [l for l in (r.stdout or "").split("\n") if l.lower().startswith("location:")]
say(f" [R] POST /backup/restore -> {head} {loc[:1]}")
t0 = time.time()
last = None
while time.time() - t0 < wait_s:
code, d = ctl("GET", "/api/backup/restore-status")
dd = d.get("data") or {}
cur = (dd.get("running"), dd.get("phase") or dd.get("state"), dd.get("message"))
if cur != last:
say(f" +{round(time.time()-t0,1):>6.1f}s restore {cur}")
last = cur
if not dd.get("running", False) and time.time() - t0 > 5:
break
time.sleep(2)
st = stack(name)
say(f" [R] after restore: state={st.get('state')} hold={st.get('hold_reason')!r} "
f"phase={st.get('update_phase')}")
return {"ok": True, "snapshot_id": snapshot_id, "snapshots": snaps,
"http": head, "location": loc[:1], "seconds": round(time.time() - t0, 1),
"state_after": st.get("state"), "hold_after": st.get("hold_reason"),
"observables_after": observables(name)}
+6 -4
View File
@@ -803,7 +803,7 @@ class (an image `VOLUME` at an unmounted path) is still live — `immich-server`
| **R-652** | **[P3-LOW] The memory watch counted the kernel's file cache as the app's memory.** MEASURED 2026-09-23 night on the bench: nextcloud 34.0.4 read **100 %** of its 1 GiB and immich's PostgreSQL **100 %**, each with **0** kernel `oom_kill`s — `memory.peak` includes page cache, which the kernel drops before it kills anything. Under the watch as built (R-635 follow-up) both would be marked `memory_tight`, and the gate would demand a raised `mem_limit` — a customer-box capacity figure — for cache. **Done the same night (09 §3 decision 22, CC — operator may reverse):** the watch samples the app's own memory (`anon` of `memory.stat`) every 15 s; the mark and the ladder's `memory_peak_pct` read it where measured; the cgroup peak stays beside it (`memory_cgroup_peak_pct`). **Open:** romm's backfilled entry carries M1's 80.9 % cgroup peak (measured before the anon sample existed) — re-measure it on its next step; and decide whether an app whose anon is low but whose cgroup stays pinned at its limit (cache thrash) should be marked at all. Evidence: `audits/night-2026-09-23/apps/nextcloud/bench-1024M/`, `apps/immich/bench-noanon/`. | **READY — P3; owner: CC (catalog harness)** |
| **R-654** | **[P3-LOW] opengist 1.15 moved every page under `/-/` — a household's `/login` bookmark answers 404 after the update.** MEASURED 2026-09-23 night: 1.13 serves `/login`, `/register`, `/all`; 1.15.2 answers **404** on all three and serves `/-/login`, `/-/register`, `/-/all`; `/` redirects to `/-/all`. The app, its data and its probe (`/healthcheck`) are fine, and a household arriving at the root lands correctly — only a deep link breaks. 1.15 also marks its session cookie `Secure`. **Needs:** a line in opengist's `app_info` if the operator wants households told; nothing in the product. Evidence: `apps/opengist-oldfixture/`, `apps/opengist/`. | **READY — P3; owner: operator (copy decision) / CC (writes it)** |
| **R-675** | **[P3-LOW] The unit-only restore's refusal for a file app still points to „Fájlok visszaállítása" instead of the second drive's whole restore.** `missingFileLegsRefusal` predates decision 26 (v0.269.0); when a whole copy exists on the second drive the sentence should name it. | **READY — P3; owner: CC (controller)** |
| **R-676** | **[P3-LOW] Watch: immich's first start restarted 12 times — decision 28's crash-loop stop (6 in 10 min) would stop it.** From the 2026-09-17 chaos night (DB connection dropped during the first-start geocoding import on a 6 GB guest; it did not recover that night). No healthy app in any drill evidence restarts on a first start (1831 samples, 40 live containers), so the threshold stands; this row exists so the first immich install under v0.269.x is watched. `audits/night-2026-09-24/A3/40-first-start-restarts.txt` **2026-09-25 night (read from source, v0.271.0): a DEPLOY's first start is NOT covered by decision 28's suppression** — `Deploying` clears when `compose up -d` returns (`deploy.go` "Clear deploying flag"), and `ObserveUnhealthy` then samples the app; an automatic update's step, verify and undo ARE covered (`Updating`, pinned by `TestD28_NoCrashLoopStopDuringAnAutomaticStep`). So a first start that restarts ≥ 6 times in 10 min is stopped — which R-676 already accepts for a broken first start; a healthy slow first start would be stopped too. | **OPEN — P3; owner: CC (watch)** |
| **R-676** | **[P3-LOW] Watch: immich's first start restarted 12 times — decision 28's crash-loop stop (6 in 10 min) would stop it.** From the 2026-09-17 chaos night (DB connection dropped during the first-start geocoding import on a 6 GB guest; it did not recover that night). No healthy app in any drill evidence restarts on a first start (1831 samples, 40 live containers), so the threshold stands; this row exists so the first immich install under v0.269.x is watched. `audits/night-2026-09-24/A3/40-first-start-restarts.txt` **2026-09-25 night (read from source, v0.271.0): a DEPLOY's first start is NOT covered by decision 28's suppression** — `Deploying` clears when `compose up -d` returns (`deploy.go` "Clear deploying flag"), and `ObserveUnhealthy` then samples the app; an automatic update's step, verify and undo ARE covered (`Updating`, pinned by `TestD28_NoCrashLoopStopDuringAnAutomaticStep`). So a first start that restarts ≥ 6 times in 10 min is stopped — which R-676 already accepts for a broken first start; a healthy slow first start would be stopped too. **-- 2026-09-30: the first-start restarts are explained.** immich's first-start geodata import OOM-kills its database at 512M on a guest with no swap (R-732, measured: 61–104 kills); the 2026-09-17 chaos-night case (DB connection dropped during the import on a 6 GB guest) fits it. Fixed in the catalog (`56c4888`, 768M). The watch itself (decision 28 on a DEPLOY's first start) is unchanged. |**OPEN — P3; owner: CC (watch)** |
| **R-682** | **[P3-LOW] A Remove interrupted by a controller kill leaves the app half-removed: containers gone, the app still listed as installed (and held).** MEASURED 2026-09-24 on 9202 (chaos round 9): the kill 2 s after the Remove press answered the household `502 Bad Gateway`; after the restart `chaoscrash` read deployed, stopped, `unhealthy_stop`, with NO container left. Pressing Remove again completed it cleanly (200, only the catalog template left). Recoverable by the household's own second press; nothing tells them to press it. **Fix direction:** the remove journals its intent and finishes (or says it was interrupted) at boot, as the update does. `audits/night-2026-09-24/E/round-09*.json`, `E/round-09b-remove-again.txt` | **READY — P3; owner: CC (controller)** |
| **R-683** | **[P3-LOW] Watch: after a power cut during an update's health check, the hold named an HOUR-OLD second-drive copy, not the one the update's own backup should have just made.** 2026-09-24 chaos round 3 (nextcloud, `backup_max_age: 1m`): no `backing-up` phase was seen and the hold named Tier 2 at 13:04 for an update pressed at 14:04; the pre-cut controller log was lost with the container (the runner now saves it at arm time — R-320). Round 11, the same action without a power cut, named a fresh 14:34 copy and logged the Tier-2 copy. The sentence was TRUE (it named the copy it offered); the question is why the update did not back up first. Not reproduced; watch the next power-cut drill. `audits/night-2026-09-24/E/round-03*.json`, `E/round-11-controller-pre.log` | **OPEN — P3; owner: CC (watch)** |
| **R-687** | **[P3-LOW] Part 7's live proof has four gaps a scratch box cannot close, and one observability gap.** (1) **W+5h reached with steps left** is proven by unit test only (`TestLeg_NoStepAtOrAfterW5h`) — the leg starts at W+105m and would need a 3-hour leg live; (2) **the off-site leg FAILING** before the update leg: 9202 has no off-site tier, so only the "no target" path ran live — failure and panic are `TestChainUpdateLeg_EveryPath`; (3) **a `files_may_change` step WITHOUT a whole copy**: both drill apps given the mark (wishlist, navidrome, romm) turned out whole on 9202 by the backup side's truth table (why, per app, is not logged — see the observability gap), so only "with a copy" ran live; (4) **the full-system gate waiting** cannot run on 9202 (no agent), and **did not occur on the demo boxes' real night either** (2026-09-25: both legs ended by 04:19, before the gate opened at 04:30, and no whole-box backup was due on either box) — unit + red-proof only (`TestD20_GateWaitsForTheLeg`). **Also cosmetic:** a leg with no steps reports `"steps": null` to the hub, not `[]`. **Observability:** when the leg TAKES a `files_may_change` step it does not log which whole copy allowed it (only the skip says why). `audits/night-2026-09-25/C/` **-- NARROWED 2026-09-25 (controller v0.273.0):** the cosmetic `"steps": null` → `[]` and the taken `files_may_change` step's missing log line are FIXED (red-proofed, `audits/night-2026-09-26/F/`). Items (1)–(4) stay; (4) did not occur on 2026-09-25 either (demo-felhom's whole-box backup ran at 07:29, three hours after its leg; demo-hp had none due). **-- 2026-09-28 (night 27/28):** (4) did not occur again — on demo-hp the leg ended 04:23:54 and the whole-guest backup began 04:37:06, after the gate opened at 04:30; demo-felhom's backup ran at 07:36 (`audits/evidence-golden-0276-2026-09-28/phaseD2-night-read.txt`). **-- 2026-09-30 (by day, demo-hp 9201): item (4) PROVEN LIVE.** The night chain pressed by hand, the window moved to W = now − 2h05m the moment the leg started, `quiesce.poll_interval` 1m: `[quiesce] full-system backup due and inside its window, but the automatic update leg is running … deferring` at 11:35:11 and 11:36:11 UTC while bookstack (55.1 s) and kimai (75.1 s) stepped; the leg's end line at 11:36:29; the backup quiesced at 11:37:11 (the first poll after), job done 11:47:19, the agent's `backup: completed` 9.98 GB. Config and window put back and read back (`audits/pg-last-six-2026-09-30/C/`). **Found, cosmetic, manual chain only:** the deferral names the moved window's W+5h (16:29) while the manual leg's own deadline was its start + the leg length (16:49). | **OPEN — P3, gaps (1)–(3) + the manual-chain deferral text; item (4) proven live 2026-09-30; owner: CC** |
@@ -841,9 +841,11 @@ class (an image `VOLUME` at an unmounted path) is still live — `immich-server`
| **R-727** | **[P2-MEDIUM] The whole-guest restore test picks a PREVIOUS box's archive, fails on its key, and the household sees a bare ✗ labelled with the wrong tier.** MEASURED 2026-09-30 01:52 UTC on the drill box: the agent's restore test chose `felhom-pbs:backup/ct/9201/2026-09-16T21:59:54Z` („newest settled archive … has not been proven") — written by a drill box of 2026-09-16, still in the customer's ep0 namespace next to tonight's own `2026-09-29T19:37:07Z` — and failed `wrong key - unable to verify signature since manifest's key 6b:ca:5f:3f… does not match provided key de:51:7a:18…`. One operator mail (`restore_test_failed`); the hub then re-logged the stored failure at every 15-minute report for 5 hours. The household's backups page read „✗ Visszaállítás ellenőrizve 2026-09-30 03:52 — Helyi tároló (local)" — the local tier had not failed; the pbs tier had, and the page says neither which nor why. Root: host delete leaves the old box's archives in the namespace (R-526's shape). **Fix direction:** the restore test skips (and reports as foreign) archives whose key fingerprint is not this host's; the page names the tier that failed. **FIXED 2026-09-30 (agent v0.138.0 + decision 51):** measured — a PBS archive carries its key FINGERPRINT (PVE content `encrypted`), not a host id; the storage carries its own (`encryption-key`). The restore test skips an archive written with another key (logged by name). The ✗ card names the tier (controller v0.283.0) — **and the 2026-09-30 claim "the page blames the local tier" was my misreading**: the „Helyi tároló (local)" after the ✗ was the next section's heading. ep0: the three drill archives in `tester-1` removed, other namespaces byte-identical. Delivered by signed jobs to both demo boxes (340 s); their due-check reads normally on 0.138.0. Evidence: `audits/evidence-fixes-first-tester-2026-09-30/``partC/`. | **CLOSED 2026-09-30 — agent v0.138.0** |
| **R-728** | **[P3-LOW] A customer created with one press was created TWICE, and the first of its two connect mails holds a dead link.** MEASURED 2026-09-30 on `Tester-2`: the hub logged `Customer config created: Tester-2` twice in the same second and two self-bind mints (hashes `c40df008…`, `6a1cbef4…`); a mint replaces the previous link (single-active), so one of the two identical mails the tester received answers „expired". Cause not established (a double form submit, or the handler run twice). **Fix direction:** make the create idempotent within a few seconds (or disable the button on submit), and pin it. The workaround for the tester is in STATUS. | **READY — rank P3-LOW; owner: CC (hub)** |
| **R-729** | **[P3-LOW] An off-site target, once saved on the page, cannot be removed through the product.** MEASURED 2026-09-30 on 9202: `/backup/offbox/config` refuses an empty address and no route clears the target; the session removed its throwaway target from `settings.json` by hand, with the controller stopped (harness teardown on a scratch guest). A household that tries its own NAS and gives up keeps a disabled target forever. **Fix direction:** a „Távoli mentési cél törlése" press that clears the target (never the repository). | **READY — rank P3-LOW; owner: CC (controller)** |
| **R-730** | **[P3-LOW] The published ISO 1.29.0 was built from a tree that git cannot name, so it cannot be tagged.** MEASURED 2026-09-30 from the build record: the manifest says `repo-commit 8d539f97` (2026-09-18 17:48), built 20:41:45; the menu-width fix the published image carries (`grub-release.cfg.tmpl`, „… / text") was committed 35 minutes AFTER the build, in `31eeb36` (21:16). `scripts/iso/build-felhom-iso.sh:498` records `git rev-parse HEAD` with no dirty-tree check, so the manifest names a commit that is not the image. **And the brief's tag name would have been wrong:** the `installer-v*` tags are the host-install SCRIPT's versions (`SCRIPT_VERSION` 1.28.0 on main; the website serves `/scripts/` from `installer-v1.28.0`), a different number line from the ISO — an `installer-v1.29.0` tag would block the next script release. **Needs:** the ISO build refuses a dirty tree (the workspace clean-tree gate, applied to this script) and records `iso-v<version>`; optionally prove 1.29.0's source by content (the ISO's `grub.cfg` against `31eeb36`) and tag that. `audits/pg-last-six-2026-09-30/E/E4-installer-tag.txt` | **READY — rank P3-LOW; owner: CC (scripts/iso)** |
| **R-731** | **[P3-LOW] The catalog-currency comparison cannot see an upstream that changes its TAG SHAPE, and two newest tags need a release check.** MEASURED 2026-09-30 (`audits/catalog-currency-2026-09-30.md` §2 item 5): the same-shape rule read three apps as up to date that were not — gramps-web (`v25.6.0` → upstream dropped the `v`, at `26.9.1`), jellyfin (`10.11.11` → two-part `12.1`), kimai (`apache-2.57.0` → plain `2.67.0`; the plain tag's digest equals `apache`'s, so kimai moved on 2026-09-30). A control pass over every shape caught them. Not checked: whether `mariadb:13.0` and `gitea/gitea:28.0.0` (pushed 2026-09-30 00:15 UTC) are general releases. **Needs:** the currency script's shape-switch control made standing (it is in the audit's tools today), and the two release checks before either is walked. | **READY — rank P3-LOW; owner: CC (catalog audit tooling)** |
| **R-732** | **[P2-MEDIUM] immich's FIRST start at today's catalog pin could not finish on the bench: its database container was OOM-killed at 512 MiB.** MEASURED 2026-09-30, twice (the second run alone on the bench): at FROM (v3.2.2, `…/postgres:16-vectorchord0.4.3-pgvectors0.2.0` at the ladder's own digest `1a078b23…`), the server's first-start reverse-geocoding import dropped its DB connection („terminating connection because of crash of another server process"), and the harness's 420 s settle never saw it healthy; a live read of the postgres cgroup showed `oom 413, oom_kill 36`, `OOMKilled true`. **The same template on 9202 the same hour** (a fresh install, kept data moved aside) seeded in 35 s and its v3.2.4 step ended `done` — but that first container was replaced by the update, so its kill counter is gone: whether a household's fresh install on a smaller box hits this is NOT measured. R-676's watch (a first start restarting ≥ 6 times in 10 min is stopped by decision 28) makes the consequence a stopped app. So immich's v3.2.4 step stays unpublished (box proven, bench inconclusive twice — Part F's stop rule). **Needs:** a sampled first-start memory watch of immich-postgres on a fresh install (bench and box, `anon` + `oom_kill` from the container's birth), then a measured `mem_limit`. `audits/pg-last-six-2026-09-30/F/immich-first-start-oom.txt`, `F/benchq-q6.txt`, `F/benchq-q10.txt` | **READY — rank P2-MEDIUM; owner: CC (catalog)** |
| **R-730** | **[P3-LOW] The published ISO 1.29.0 was built from a tree that git cannot name, so it cannot be tagged.** MEASURED 2026-09-30 from the build record: the manifest says `repo-commit 8d539f97` (2026-09-18 17:48), built 20:41:45; the menu-width fix the published image carries (`grub-release.cfg.tmpl`, „… / text") was committed 35 minutes AFTER the build, in `31eeb36` (21:16). `scripts/iso/build-felhom-iso.sh:498` records `git rev-parse HEAD` with no dirty-tree check, so the manifest names a commit that is not the image. **And the brief's tag name would have been wrong:** the `installer-v*` tags are the host-install SCRIPT's versions (`SCRIPT_VERSION` 1.28.0 on main; the website serves `/scripts/` from `installer-v1.28.0`), a different number line from the ISO — an `installer-v1.29.0` tag would block the next script release. **Needs:** the ISO build refuses a dirty tree (the workspace clean-tree gate, applied to this script) and records `iso-v<version>`; optionally prove 1.29.0's source by content (the ISO's `grub.cfg` against `31eeb36`) and tag that. `audits/pg-last-six-2026-09-30/E/E4-installer-tag.txt` **-- 2026-09-30: BUILT.** `scripts/iso/build-felhom-iso.sh` now runs a clean-tree gate right after argument parsing: any uncommitted or untracked change, or HEAD ≠ `origin/main`, refuses the build (no bypass flag); the manifest records `repo-commit` from the gate and `iso-version-tag : iso-v<version>`. Test `scripts/iso/test/clean-tree.sh` (4 cases, throwaway repo via the `FELHOM_ISO_REPO` seam); **red-proof run:** the status check deleted → cases 2 and 4 FAIL → restored → all pass. `test/rootpw-emission.sh` now builds from the same kind of throwaway clean repo (it cannot run on DooPlex either way: the assistant image is absent, 9 FAILs before and after). ISO 1.29.0 stays untagged: its source cannot be proven. | **CLOSED 2026-09-30 — the gate + test; 1.29.0 untagged by decision (its build tree is not a commit)** |
| **R-731** | **[P3-LOW] The catalog-currency comparison cannot see an upstream that changes its TAG SHAPE, and two newest tags need a release check.** MEASURED 2026-09-30 (`audits/catalog-currency-2026-09-30.md` §2 item 5): the same-shape rule read three apps as up to date that were not — gramps-web (`v25.6.0` → upstream dropped the `v`, at `26.9.1`), jellyfin (`10.11.11` → two-part `12.1`), kimai (`apache-2.57.0` → plain `2.67.0`; the plain tag's digest equals `apache`'s, so kimai moved on 2026-09-30). A control pass over every shape caught them. Not checked: whether `mariadb:13.0` and `gitea/gitea:28.0.0` (pushed 2026-09-30 00:15 UTC) are general releases. **Needs:** the currency script's shape-switch control made standing (it is in the audit's tools today), and the two release checks before either is walked. **-- 2026-09-30: the two release checks answered** (`audits/immich-first-start-2026-09-30/D/D2-release-checks.txt`): **gitea v28.0.0** is a general release (GitHub: not prerelease, not draft, 2026-09-29) — upstream renumbered 1.27.x → 28; **mariadb 13.0** is `Stable` but a short-term `Rolling` line (no EOL date), while 12.3 and 11.8 are the LTS lines — so a move of any of the four MariaDB apps to 13.0 would leave LTS. Not done: the shape-switch control made standing. | **NARROWED 2026-09-30 — only the standing shape-switch control is left; owner: CC** |
| **R-732** | **[P2-MEDIUM] immich's FIRST start at today's catalog pin could not finish on the bench: its database container was OOM-killed at 512 MiB.** MEASURED 2026-09-30, twice (the second run alone on the bench): at FROM (v3.2.2, `…/postgres:16-vectorchord0.4.3-pgvectors0.2.0` at the ladder's own digest `1a078b23…`), the server's first-start reverse-geocoding import dropped its DB connection („terminating connection because of crash of another server process"), and the harness's 420 s settle never saw it healthy; a live read of the postgres cgroup showed `oom 413, oom_kill 36`, `OOMKilled true`. **The same template on 9202 the same hour** (a fresh install, kept data moved aside) seeded in 35 s and its v3.2.4 step ended `done` — but that first container was replaced by the update, so its kill counter is gone: whether a household's fresh install on a smaller box hits this is NOT measured. R-676's watch (a first start restarting ≥ 6 times in 10 min is stopped by decision 28) makes the consequence a stopped app. So immich's v3.2.4 step stays unpublished (box proven, bench inconclusive twice — Part F's stop rule). **Needs:** a sampled first-start memory watch of immich-postgres on a fresh install (bench and box, `anon` + `oom_kill` from the container's birth), then a measured `mem_limit`. `audits/pg-last-six-2026-09-30/F/immich-first-start-oom.txt`, `F/benchq-q6.txt`, `F/benchq-q10.txt` **-- 2026-09-30 (afternoon): CAUSE MEASURED and FIXED.** immich's first-start geodata import runs up to 9 concurrent 5000-row INSERTs; the database then needs ~400 MB anon + ~170 MB touched shared_buffers (the image's own `postgresql.conf` fixes 512MB — NOT sized from host RAM). At 512M without swap it is OOM-killed (bench: 61–104 kills); with 512 MiB swap it survives by swapping ~70–110 MB (why 9202 passed). Controls, one variable each: swap alone → 0 kills; limit 1024M alone → 0; `shared_buffers` 128MB alone → still 104 kills. **An update that ships a new geodata file re-runs the import** (v3.2.2 → v3.2.4: 228 294 → 228 571 places), so the fix had to ride the step. Catalog `56c4888`: immich v3.2.4 + `immich-postgres` 768M (`mem_limit` 4096M → 4480M; +256 MB per immich box). Proven with swap OFF: fresh install at the new definition on the bench ×2 (anon 409/412 MB = 53 %, 0 kills) and on 9202 (368 MB = 48 %, 0 kills); the step on both venues (bench proven, 0 kills in the 10-min watch; box done 58.5 s, album read back, running limit 768M). `audits/immich-first-start-2026-09-30/A-cause.md`. | **CLOSED 2026-09-30 — catalog `56c4888` (768M + v3.2.4); an installed immich gets it with its next guarded Update** |
| **R-733** | **[P3-LOW] The test bench has NO swap and the boxes have 512 MiB — so a box proof can pass on swap where the bench fails, and nobody records whether a customer guest has swap.** MEASURED 2026-09-30 (R-732): immich's first start was OOM-killed 61–104 times on the bench (swap 0) and passed on 9202 by swapping ~108 MB; the bench given 512 MiB swap passed too. demo-hp 9201, 9202 and demo-felhom 9201 all read `swap: 512`; the golden's guest config is not recorded in its bake evidence, so a customer guest's swap is NOT measured. The harness's memory watch judges `anon` against the limit and never reads `memory.swap.current`. **Needs:** the golden's `swap` read and recorded; the box walk and the harness report `memory.swap.peak` beside `anon`; a decision whether proofs run with swap off (the stricter venue, as R-732's fix was proven). | **READY — rank P3-LOW; owner: CC (harness + golden evidence)** |
| **R-734** | **[P3-LOW] The harness marks immich `files_may_change` because immich rewrites six 13-byte `.immich` folder markers at every start.** MEASURED 2026-09-30 on the bench (v3.2.2 → v3.2.4): the bind-tree hash of `appdata/immich` changed; the only changed files were `{encoded-video,library,backups,profile,thumbs,upload}/.immich`, rewritten at each start — no household file. The mark is honest by the harness's rule and the ladder writer copies it (never edited by hand), so immich's v3.2.4 night step needs a fresh WHOLE copy (decision 13); on a box without one the night leg skips it and a person presses. The 2026-09-23 immich entry did not carry it (`files_changed []`). **Needs:** a decision whether app-owned marker files are excluded from the file hash (a per-template ignore list, or a size/name rule), or the mark stays. | **READY — rank P3-LOW; owner: CC (harness); the rule change needs a word** |
<!-- DUE-CHECKS-BEGIN — machine-readable. Parsed by scripts/due_checks_gate.py.
One row per dated check. The R-number must have a row above. Dates are UTC.
+11
View File
@@ -1,3 +1,14 @@
## ISO build refuses a dirty or unpushed tree (2026-09-30, R-730)
- `iso/build-felhom-iso.sh`: a clean-tree gate right after argument parsing — any uncommitted or untracked change, or
`HEAD` ≠ `origin/main`, refuses the build before anything is made (no bypass flag). Why: ISO 1.29.0's manifest names
`8d539f9`, but the published image carries a fix committed 35 minutes after the build, so no commit is that image.
- The manifest's `repo-commit` comes from the gate; `iso-version-tag` now reads `iso-v<version>` (the ISO's own line —
`installer-v*` is the host-install script's).
- New test `iso/test/clean-tree.sh` (4 cases, a throwaway repo through the `FELHOM_ISO_REPO` seam); red-proof run (the
status check deleted → 2 cases fail). `iso/test/rootpw-emission.sh` builds from a throwaway clean repo too.
- No image built or published; `SCRIPT_VERSION` and `ISO_VERSION` unchanged; 1.29.0 stays untagged.
## ISO 1.29.0 source — the box's own screen speaks English too (2026-09-18, R-559)
**Source only. The image is NOT built or published by this commit** — see the release note at the end.
+27 -2
View File
@@ -145,6 +145,31 @@ while [[ $# -gt 0 ]]; do
*) die "unknown argument: $1 (see --help)" ;;
esac
done
# ── Clean-tree gate (R-730, 2026-09-30) ────────────────────────────────────────────────────────────────
# The manifest names the commit an image was built from. ISO 1.29.0's names 8d539f9, but the published image
# carries a menu fix committed 35 minutes AFTER the build (31eeb36): it was built from an uncommitted tree, so
# no commit is that image and it cannot be tagged. The workspace rule ("an unpushed change does not exist —
# never build a dirty or unpushed tree") is therefore enforced HERE, before anything is built: the tree must
# have no uncommitted or untracked change, and HEAD must equal origin/main. No bypass flag, deliberately.
# FELHOM_ISO_REPO is a TEST SEAM only (test/clean-tree.sh points it at a throwaway repo).
# COMPANION RED-PROOF (test/clean-tree.sh header): drop the status check → case 2 fails.
REPO_DIR="${FELHOM_ISO_REPO:-$(cd "$HERE/../.." && pwd)}"
REPO_COMMIT=""
clean_tree_gate() {
local st head up
st="$(git -C "$REPO_DIR" status --porcelain 2>/dev/null)" \
|| die "clean-tree gate: $REPO_DIR is not a git work tree — the build could not name its source (R-730)"
[[ -z "$st" ]] || die "clean-tree gate: the tree has uncommitted or untracked changes — an image built from it has no commit to name (R-730). Commit and push first. First entries: $(echo "$st" | head -5 | tr '\n' ';')"
head="$(git -C "$REPO_DIR" rev-parse HEAD)"
up="$(git -C "$REPO_DIR" rev-parse --verify -q origin/main)" \
|| die "clean-tree gate: no origin/main in $REPO_DIR — cannot prove the commit is pushed (R-730)"
[[ "$head" == "$up" ]] \
|| die "clean-tree gate: HEAD ${head:0:12} is not origin/main ${up:0:12} — an unpushed change does not exist (R-730)"
REPO_COMMIT="$head"
log_info "clean-tree gate: tree clean, HEAD = origin/main = ${head:0:12}"
}
clean_tree_gate
[[ -z "$LOADER_CLI" || "$LOADER_CLI" == "shim" || "$LOADER_CLI" == "mkimage" ]] \
|| die "--loader must be 'shim' or 'mkimage' (got '$LOADER_CLI')"
@@ -471,7 +496,7 @@ $RELEASE && MODE_NOTE="release (PUBLIC image — NO answer.toml, NO baked creden
cat > "$OUT_ISO.manifest.txt" <<EOF
Felhom bare-metal ISO build manifest (R-21 slice A+B+C)
built : $(date -Is)
iso-version-tag : v${ISO_VERSION}
iso-version-tag : iso-v${ISO_VERSION} (the git tag this image's source carries, when tagged — NOT installer-v*, the host-install script's line)
pve-version : ${PVE_VERSION}
source-iso : ${ISO_BASE}
source-iso-sha256 : ${ISO_SHA256}
@@ -495,7 +520,7 @@ secret-bearing : ${SECRET_BEARING}$( $RELEASE && echo ' (PUBLIC image —
root-password : $( $RELEASE && echo 'NONE — not baked. The installer prompts the person installing (release gate G2).' || echo "see $(basename "$OUT_ISO").rootpw.txt (operator-only; NEVER commit or paste into REPORTs)" )
answer-file : $( $RELEASE && echo 'NONE — no answer.toml, no auto-installer-mode.toml (release gate G1)' || echo 'baked (/answer.toml)' )
felhom-package : $( [[ -n "$RELEASE_DEB" ]] && echo "$(basename "$RELEASE_DEB") sha256=$(sha256sum "$RELEASE_DEB" | cut -d\ -f1)" || echo 'n/a (day-0 rides the answer file first-boot hook)' )
repo-commit : $(cd "$HERE" && git rev-parse HEAD 2>/dev/null || echo unknown)
repo-commit : ${REPO_COMMIT} (clean tree, = origin/main at build time — the clean-tree gate, R-730)
output : $(basename "$OUT_ISO")
output-sha256 : ${OUT_SHA}
output-size-bytes : ${OUT_SIZE}
+42
View File
@@ -0,0 +1,42 @@
#!/bin/bash
# clean-tree.sh — R-730 regression test for build-felhom-iso.sh's clean-tree gate. No docker, no ISO:
# the gate runs right after argument parsing, so the build dies at the gate (refused) or at the next
# check ("--pve-iso is required", which proves it got PAST the gate). The repo is a throwaway one
# (FELHOM_ISO_REPO, the gate's test seam) with a local bare "origin".
# 1. a clean tree whose HEAD = origin/main → passes the gate
# 2. the same tree plus an UNTRACKED file → refused ("uncommitted or untracked")
# 3. a commit that is NOT on origin/main → refused ("not origin/main")
# 4. a modified TRACKED file → refused
# Red-proof (run 2026-09-30, recorded in the R-730 row): delete the `[[ -z "$st" ]] || die …` line in
# the gate → cases 2 and 4 FAIL (the build goes past the gate) → restore.
set -uo pipefail
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BUILD="$HERE/../build-felhom-iso.sh"
fail=0
check() { if eval "$2"; then echo " ok: $1"; else echo " FAIL: $1"; fail=1; fi; }
S="$(mktemp -d "${TMPDIR:-/tmp}/felhom-cleantree-test.XXXXXX")"
trap 'rm -rf "$S"' EXIT
git init -q --bare "$S/origin.git"
git init -q -b main "$S/repo"
git -C "$S/repo" -c user.email=t@t -c user.name=t commit -q --allow-empty -m first
git -C "$S/repo" remote add origin "$S/origin.git"
git -C "$S/repo" push -q origin main
run() { FELHOM_ISO_REPO="$S/repo" bash "$BUILD" 2>&1; }
out="$(run)"
check "1 clean + pushed passes the gate" '[[ "$out" == *"--pve-iso is required"* && "$out" != *"clean-tree gate:"*"R-730"* ]]'
touch "$S/repo/stray.txt"
out="$(run)"
check "2 an untracked file is refused" '[[ "$out" == *"uncommitted or untracked"* && "$out" != *"--pve-iso is required"* ]]'
rm -f "$S/repo/stray.txt"
git -C "$S/repo" -c user.email=t@t -c user.name=t commit -q --allow-empty -m local-only
out="$(run)"
check "3 an unpushed commit is refused" '[[ "$out" == *"is not origin/main"* && "$out" != *"--pve-iso is required"* ]]'
git -C "$S/repo" push -q origin main
echo a > "$S/repo/f.txt"; git -C "$S/repo" add f.txt
git -C "$S/repo" -c user.email=t@t -c user.name=t commit -q -m f; git -C "$S/repo" push -q origin main
echo b > "$S/repo/f.txt"
out="$(run)"
check "4 a modified tracked file is refused" '[[ "$out" == *"uncommitted or untracked"* && "$out" != *"--pve-iso is required"* ]]'
[[ $fail -eq 0 ]] && echo "clean-tree gate: all cases pass" || echo "clean-tree gate: FAILED"
exit $fail
+6 -1
View File
@@ -30,7 +30,12 @@ FAKE_SHA="$(sha256sum "$FAKE_ISO" | awk '{print $1}')"
say "dry-run build (pairing, nested-canary) with FELHOM_ISO_KEEP_WORK=1"
BUILD_LOG="$SCRATCH/build.log"
FELHOM_ISO_KEEP_WORK=1 TMPDIR="$SCRATCH/tmp" bash "$BUILD" \
# R-730: the build refuses a dirty/unpushed tree; this test is about the root password, so it builds from a
# throwaway clean repo (the gate's own test seam) and stays runnable while the real tree has work in progress.
git init -q --bare "$SCRATCH/origin.git"; git init -q -b main "$SCRATCH/repo"
git -C "$SCRATCH/repo" -c user.email=t@t -c user.name=t commit -q --allow-empty -m first
git -C "$SCRATCH/repo" remote add origin "$SCRATCH/origin.git"; git -C "$SCRATCH/repo" push -q origin main
FELHOM_ISO_REPO="$SCRATCH/repo" FELHOM_ISO_KEEP_WORK=1 TMPDIR="$SCRATCH/tmp" bash "$BUILD" \
--pve-iso "$FAKE_ISO" --iso-sha256 "$FAKE_SHA" \
--profile "$HERE/../profiles/nested-canary.profile" \
--pairing --out "$SCRATCH/out" --dry-run > "$BUILD_LOG" 2>&1