Node-local MinIO + failover template read + ImgDat dedup (fixes new-doc about:blank)

FixDocsService
Shipped
June 30, 2026 at 11:15 PM UTC
Author
Sage
Commit
9cd1ad0

New-document creation hung ~5 min and the new tab stayed at about:blank. Root cause: DocsService pods scheduled on k3m1 read the blank template from MinIO at the hardcoded WireGuard IP 10.8.1.1 (k1m1), which is unreachable from k3m1 (the k1m1<->k3m1 WG overlay is down). The template read used a singleton MinioClient bean with no timeout (MinIO SDK default 5 min), so createNewDocument blocked indefinitely; the frontend's catch wrote the error into the pre-opened blank tab. Fixes: - deployment: source MINIO_CURRENT_HOST from the Downward API (status.hostIP) so each pod uses the MinIO instance local to its node, instead of a static IP that pins every pod to one node's (now-unreachable) WireGuard address. - configmap: point MinIO current/edge/cold at minio.cluster-services (reachable from every node, backed by k1m1 which holds all data) instead of the dead WireGuard IPs — used as failover behind the node-local current-host. - DocumentService: read the template via the failover MinIOStorageService.download() (fresh, timeout-bounded clients + node failover) instead of the raw no-timeout MinioClient bean, so an unreachable node fails over fast instead of hanging. - DocumentService: content-addressed dedup of ImgDat. Blank templates are byte-identical, so a fresh insert violated idx_img_dats_hash_unique on the 2nd+ document; reuse the existing row via findByHashCombination (matching the upload paths) and only upload when newly created. - Remove the now-unused singleton MinioClient bean.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing