Keeps 118: the other claimant to this number is on main as issue 119, where ADR 0112 points. Scrubbed the service's public name — this repository is public — and completed the report's frontmatter with the fixed-by and amended-design keys every other report carries.
50 lines
1.9 KiB
Markdown
50 lines
1.9 KiB
Markdown
---
|
|
status: located
|
|
opened: 2026-09-25
|
|
located-in: [mesh-catalog modules/umami]
|
|
fixed-by:
|
|
amended-design:
|
|
---
|
|
|
|
# 118 — umami's store answers the dial and times out the query
|
|
|
|
## What was observed
|
|
|
|
The analytics service's public name has answered `502` through the whole of 2026-09-25's migration session
|
|
(first noted mid-afternoon, still true at night). The container restart-loops on a
|
|
timescale of about a minute. Its own log, every cycle:
|
|
|
|
```
|
|
✓ DATABASE_URL is defined.
|
|
✓ Database connection successful.
|
|
Invalid `prisma.$queryRaw()` invocation:
|
|
Raw query failed. Code: `N/A`. Message: `Operation has timed out`
|
|
```
|
|
|
|
The connection is established — the dial succeeds — and the first raw query then times
|
|
out. This is not a credentials fault and not an unreachable store.
|
|
|
|
## What it is not
|
|
|
|
- Not the routing layer: the `502` is Traefik faithfully reporting a backend that is
|
|
restart-looping. The stale duplicate Traefik router for this name (a HAL-era
|
|
hand-authored file beside the mesh-written one) was removed the same night and changed
|
|
nothing, as expected.
|
|
- Not the mesh's grant machinery: the binding and sealed secret compose, and the store
|
|
accepts the login — a wrong credential refuses the dial, and this dial succeeds.
|
|
|
|
## Where to look
|
|
|
|
A dial that succeeds and a query that times out, from a container on one network to a
|
|
store on another, has the shape of a path-MTU or conntrack fault (large response packets
|
|
dropped after the small handshake ones pass), or of the store accepting the TCP
|
|
connection while the backend it proxies for is wedged. Neither is proven. What is known
|
|
to differ for umami against every working consumer of the same store tonight is nothing
|
|
yet — that comparison is the first move.
|
|
|
|
## Why it is filed rather than chased
|
|
|
|
The 2026-09-25 session's scope was routing and the build chain; this fault predates the
|
|
night's changes, survived them unchanged, and needs its own sitting with the store's own
|
|
logs beside the consumer's.
|