incidents: add the 2026-10-02 gateway outage write-up (from the unmerged incident branch) #9

Closed
solo.ist wants to merge 0 commits from solo.ist/docs:docs/incident-2026-10-02 into main
pull from: solo.ist/docs:docs/incident-2026-10-02
Contributor

The 2026-10-02 write-up has been sitting on incident/2026-10-02-gateway-cve-upgrade since the outage. That branch is now far behind main (it predates Regolo, Matrix and the scheduler docs) and can't merge as is. This takes just the incident text and the CVE note into a standalone file under incidents/, attributed to the bot, and links it from infrastructure.md. Nothing new; it makes the post-mortem findable, which is one of the better things the co-op does. The branch can be deleted afterwards.

The 2026-10-02 write-up has been sitting on `incident/2026-10-02-gateway-cve-upgrade` since the outage. That branch is now far behind `main` (it predates Regolo, Matrix and the scheduler docs) and can't merge as is. This takes just the incident text and the CVE note into a standalone file under `incidents/`, attributed to the bot, and links it from infrastructure.md. Nothing new; it makes the post-mortem findable, which is one of the better things the co-op does. The branch can be deleted afterwards.
solo.ist added 1 commit 2026-10-26 06:12:22 +00:00
The write-up has sat on incident/2026-10-02-gateway-cve-upgrade since the
outage and that branch is now far behind main. This lifts just the incident
text and the CVE note into incidents/, attributed to InferenceBot with the
substance unchanged, and links it from infrastructure.md under a new
Incident log section.
Owner

Cross-checked this against the internal upgrade runbook we keep for the gateway. Every technical point matches, which is worth saying for a document that will be read as the permanent record:

  • the floating main-v1.74.0-stable tag silently advancing under a rebuild;
  • the per-boot Prisma migration with internal timeouts and retries, and the "port binding proves nothing" trap;
  • the OOM under Cloudron's default memory cap, and the LITELLM_MIGRATION_DIR / memory-limit repairs;
  • CORS silently reverted to *;
  • both CVEs and their fix lines (2026-35029 in 1.83.0; 2026-59822 in 1.84.0, CISA KEV).

The closing line also checks out live: the gateway now reports x-litellm-version: 1.103.2 on every response.

One correction: the byline says the write-up was written on 2026-10-01, a day before the incident it describes. The branch and the filename both say 2026-10-02, so this looks like a typo — worth fixing, since the file is the thing people will cite later.

One nit: "about 50 minutes, 04:50–05:34 UTC" is a 44-minute window. Either use the window alone or say about 45 minutes; these numbers get quoted.

Moving it to incidents/ and linking from infrastructure.md is the right call. Once the old branch is deleted, this copy is the only public one — so it is worth being exact about the date before that happens.

Cross-checked this against the internal upgrade runbook we keep for the gateway. **Every technical point matches**, which is worth saying for a document that will be read as the permanent record: - the floating `main-v1.74.0-stable` tag silently advancing under a rebuild; - the per-boot Prisma migration with internal timeouts and retries, and the "port binding proves nothing" trap; - the OOM under Cloudron's default memory cap, and the `LITELLM_MIGRATION_DIR` / memory-limit repairs; - CORS silently reverted to `*`; - both CVEs and their fix lines (2026-35029 in 1.83.0; 2026-59822 in 1.84.0, CISA KEV). The closing line also checks out live: the gateway now reports `x-litellm-version: 1.103.2` on every response. **One correction:** the byline says the write-up was written on `2026-10-01`, a day before the incident it describes. The branch and the filename both say 2026-10-02, so this looks like a typo — worth fixing, since the file is the thing people will cite later. **One nit:** "about 50 minutes, 04:50–05:34 UTC" is a 44-minute window. Either use the window alone or say about 45 minutes; these numbers get quoted. Moving it to `incidents/` and linking from `infrastructure.md` is the right call. Once the old branch is deleted, this copy is the only public one — so it is worth being exact about the date before that happens.
solo.ist added 1 commit 2026-10-27 05:34:27 +00:00
Author
Contributor

Thanks for checking it against the runbook. Both fixed and pushed:

  • The duration now reads "about 45 minutes, 04:50–05:34 UTC".
  • The byline date was a timezone artifact. The branch commit is stamped 2026-10-01 23:35 at UTC−6, which is 05:35 UTC on the 2nd, a minute after service came back. The byline now says 2026-10-02 and notes the local timestamp so nobody trips on it again.

Good to have the record exact before the old branch goes.

Thanks for checking it against the runbook. Both fixed and pushed: - The duration now reads "about 45 minutes, 04:50–05:34 UTC". - The byline date was a timezone artifact. The branch commit is stamped 2026-10-01 23:35 at UTC−6, which is 05:35 UTC on the 2nd, a minute after service came back. The byline now says 2026-10-02 and notes the local timestamp so nobody trips on it again. Good to have the record exact before the old branch goes.
dckc approved these changes 2026-10-30 07:41:35 +00:00
dckc left a comment
First-time contributor

looks plausible. I don't see anything wrong.

This review is something of an experiment - am I authorized? Do I know enough? Did I miss anything?

p.s. it still "doesn't have enough required approvals yet", so I lack some relevant magic powers.

looks plausible. I don't see anything wrong. This review is something of an experiment - am I authorized? Do I know enough? Did I miss anything? _p.s. it still "doesn't have enough required approvals yet", so I lack some relevant magic powers._
Owner

Merging this now — thanks for the review, dckc, and to solo.ist for getting the write-up off the stale branch before it disappeared.

One explanation for the record, since it's a real question and not a courtesy one: on this repo, main requires an approval from the Owners team, and that team currently holds only two accounts — both machine accounts (inference-admin, inference-bot). So a member's approval does not satisfy the gate. dckc's review is the substantive one; the approval below is a bot doing the mechanical step on the operator's instruction. The rule is the thing that needs fixing, and it will be.

Two small notes, neither blocking: No data loss is the one claim in the write-up that isn't self-evident from the rest — worth a sentence on how it was established, since lines like that get quoted. And the incident log's One so far will need editing as more accumulate.

Merging this now — thanks for the review, dckc, and to solo.ist for getting the write-up off the stale branch before it disappeared. One explanation for the record, since it's a real question and not a courtesy one: on this repo, `main` requires an approval from the **Owners** team, and that team currently holds only two accounts — both machine accounts (`inference-admin`, `inference-bot`). So a member's approval does not satisfy the gate. dckc's review is the substantive one; the approval below is a bot doing the mechanical step on the operator's instruction. The rule is the thing that needs fixing, and it will be. Two small notes, neither blocking: *No data loss* is the one claim in the write-up that isn't self-evident from the rest — worth a sentence on how it was established, since lines like that get quoted. And the incident log's *One so far* will need editing as more accumulate.
inference-bot left a comment
Owner

Approving as the account the merge gate requires, on the operator's instruction. dckc's review above is the substantive one; see my comment for why a member's approval cannot satisfy this gate today.

Approving as the account the merge gate requires, on the operator's instruction. dckc's review above is the substantive one; see my comment for why a member's approval cannot satisfy this gate today.
Owner

Merged to main by push — the write-up and the incident-log link are live at deb53ea. Closing rather than merging through the button because Gitea can't record it: the approval gate on this repo is restricted to the Owners team, which holds only machine accounts, and Gitea won't accept their API reviews as approvals. That rule is the thing to fix.

Two notes for the record:

  • My first attempt merged the wrong branch — incident/2026-10-02-gateway-cve-upgrade, the old one this PR was created to get off, which added 46 stale lines to infrastructure.md. It was reverted in 2741516 before the correct merge went in. main's content is right; the detour is in the history, as it should be.
  • The head branch lives in solo.ist's fork and can be deleted whenever it's served its purpose.

Thanks to dckc for the review and to solo.ist for rescuing the write-up off a branch that was never going to merge.

Merged to `main` by push — the write-up and the incident-log link are live at `deb53ea`. Closing rather than merging through the button because Gitea can't record it: the approval gate on this repo is restricted to the Owners team, which holds only machine accounts, and Gitea won't accept their API reviews as approvals. That rule is the thing to fix. Two notes for the record: - My first attempt merged the wrong branch — `incident/2026-10-02-gateway-cve-upgrade`, the old one this PR was created to get *off*, which added 46 stale lines to `infrastructure.md`. It was reverted in `2741516` before the correct merge went in. `main`'s content is right; the detour is in the history, as it should be. - The head branch lives in `solo.ist`'s fork and can be deleted whenever it's served its purpose. Thanks to dckc for the review and to solo.ist for rescuing the write-up off a branch that was never going to merge.
inference-bot closed this pull request 2026-10-30 15:05:10 +00:00

Pull request closed

Please reopen this pull request to perform a merge.
Sign in to join this conversation.
No Reviewers
No labels
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: co-op/docs#9