Found while implementing #9354, surfaced by that card's docs-audit step. Filed unassigned; not fixed in #9354's PR because that dispatch declared a file surface of packages/drivers/driver-sql/src/sql-driver.ts plus its sibling test files, and a content/docs/** edit is outside it.
The gap
content/docs/data-modeling/drivers.mdx is the page scripts/docs-audit/affected-docs.mjs names first for a driver-sql change, and it already carries the matching subject: a ### Connect timeouts section documenting the two timeout defaults SqlDriver supplies, each with its value and the reasoning behind it.
#9354 adds a third driver-supplied bound of the same genre, and this one is operator-visible in a way the other two are not:
lock_wait_timeout is set to 120 seconds on the session performing the deferred-DDL widening ALTER, replacing MySQL's inherited default of 31,536,000 s (one year);- a blocked
os migrate apply now fails with an ADR-0112 envelope (DATABASE_ERROR / 500) naming the lock wait, where it previously hung silently.
That is a new failure mode an operator can meet on a real migration, with a specific error message and a specific remedy, and no page documents it.
Where it belongs
The existing ### Connect timeouts section sits under the PostgreSQL heading and is specifically about the TCP/handshake bound, so this is not a row to add to that table. The natural home is the ## MySQL (via @objectstack/driver-sql) section that immediately follows it — the page's home for MySQL-specific driver behaviour, which already covers the TIMESTAMP → DATETIME(3) widening this bound protects.
Worth stating there: the bound's value, that it is deliberately not configurable and not retried (the 2026-08-17 ruling on #9354), that only the operator-initiated flush is bounded, and what the operator should do when they meet the refusal (find the lock holder, re-run — the widening is idempotent).
⚠️content/docs/releases/v17.mdx also appears in the affected-docs output; per CLAUDE.md that file is written centrally at release time and must not be edited as part of this.
Related: #9354 (the change that introduces the bound).
Found while implementing #9354, surfaced by that card's docs-audit step. Filed unassigned; not fixed in #9354's PR because that dispatch declared a file surface of
packages/drivers/driver-sql/src/sql-driver.tsplus its sibling test files, and acontent/docs/**edit is outside it.The gap
content/docs/data-modeling/drivers.mdxis the pagescripts/docs-audit/affected-docs.mjsnames first for adriver-sqlchange, and it already carries the matching subject: a### Connect timeoutssection documenting the two timeout defaultsSqlDriversupplies, each with its value and the reasoning behind it.#9354 adds a third driver-supplied bound of the same genre, and this one is operator-visible in a way the other two are not:
lock_wait_timeoutis set to 120 seconds on the session performing the deferred-DDL widening ALTER, replacing MySQL's inherited default of 31,536,000 s (one year);os migrate applynow fails with an ADR-0112 envelope (DATABASE_ERROR/ 500) naming the lock wait, where it previously hung silently.That is a new failure mode an operator can meet on a real migration, with a specific error message and a specific remedy, and no page documents it.
Where it belongs
The existing
### Connect timeoutssection sits under the PostgreSQL heading and is specifically about the TCP/handshake bound, so this is not a row to add to that table. The natural home is the## MySQL (via @objectstack/driver-sql)section that immediately follows it — the page's home for MySQL-specific driver behaviour, which already covers theTIMESTAMP→DATETIME(3)widening this bound protects.Worth stating there: the bound's value, that it is deliberately not configurable and not retried (the 2026-08-17 ruling on #9354), that only the operator-initiated flush is bounded, and what the operator should do when they meet the refusal (find the lock holder, re-run — the widening is idempotent).
content/docs/releases/v17.mdxalso appears in the affected-docs output; per CLAUDE.md that file is written centrally at release time and must not be edited as part of this.Related: #9354 (the change that introduces the bound).