You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
publish-smoke / packed-tarballs is RED ON MAIN: the new boot scan fails on a vendor-handled UNIQUE constraint line — and it is blocking the release #17027
publish-smoke / packed-tarballs has been failing on main since ~2026-09-09T01:07Z. It is a status check on the Version Packages PR (#15334), so it currently blocks the release — and that release is the one open action on #16500 (the published on-ramp is broken for every new user until it ships).
⛔ Filed by the seat that hit it while verifying #16500's release path. Main-red is shared damage, so it is filed rather than worked around. domain:* and priority:* are triage's to set — deliberately not set here.
The failure
Run 34304339043, job Packed-tarball smoke (release candidate), on main @ d127f9b:
16:...ERROR Insert operation failed {"object":"sys_oauth_resource","error":{"message":
"UNIQUE constraint failed: sys_oauth_resource.identifier [statement and bound values redacted]",
"stack":"SqliteError: ... at _SqlDriver.create (.../@objectstack/driver-sql@...17.4.0.tgz/...)
at _ObjectQL.createWithAutonumberResync (.../@objectstack/objectql@...17.4.0.tgz/...)"}}
##[error]error-level log lines during BOOT, before any probe ran (see above)
No probe ever ran — the job exits on the boot scan.
⭐ The line is a caught, by-design no-op — quoted from the vendor
@better-auth/oauth-provider@1.7.2, dist/introspect-*.mjs, docblock over the resource seeder (read from the published tarball):
"insertOnly" (default, safe): inserts rows whose identifier is not already present. Existing rows are untouched …
Race-safety: the identifier column carries a UNIQUE constraint, so two processes booting simultaneously can each attempt the insert — one wins, the other catches the constraint error and treats it as a no-op.
⇒ The vendor deliberately uses the UNIQUE violation as its race-safety mechanism and swallows it. Our SQL driver logs the exception at ERROR on the way out, before the vendor catches it, and the boot scan then reads that line as a failed boot.
⚠️ So the most likely reading is a false positive: a handled exception rendered as an unhandled-looking ERROR line. ⛔ Not asserted as certain — see NOT MEASURED below.
Why it appeared now — the gate is 5 hours old
when
what
2026-09-08 22:19:31Z
b810fd0 — test(publish-smoke): judge the boot before the probes run (#16976) lands, adding the boot-window error scan
2026-09-09 ~01:07Z onward
packed-tarballs red on main, repeatedly
Failing runs on main, all same job: 34297886522 (01:07Z) · 34298625221 (01:18Z) · 34299337307 (01:28Z) · 34300907710 (01:52Z) · 34302122333 (02:10Z) · 34304339043 (02:43Z). Interleaved runs show cancelled because the next push superseded them.
⇒ The defect is not in the release candidate's product code. The gate started asserting something new, and this pre-existing benign log line fails it. ⛔ The maintainer's merge attempt did not cause this.
⭐ What this run DOES prove: the better-auth fix works
Auth is loaded. There is no AuthPlugin failed to load. The exact-pin fix (#16634) does clear #16500's root cause in the packed 17.4.0 artifacts — measured, not inferred.
NOT MEASURED
⛔ Whether the auth + CRUD probes pass. They never executed. The vendor's own contract says the row survives (one inserter wins), but this seat did not run them.
⛔ Why two seeders race on a fresh DB at all. A single-process objectstack dev boot colliding with itself is worth understanding; it may be a second betterAuth() instance rather than a true two-process race.
Suggested shape (for whoever picks this up)
Three candidate repairs, in the order this seat would try them:
The log level is wrong._SqlDriver.create logs ERROR and then throws; the throw is the real signal and the caller handles it. Logging ERROR for an exception you are about to hand to a caller double-reports it.
Avoid the collision. If the seed genuinely runs twice in one process, one of the two attempts should not exist.
⛔ Do not simply add sys_oauth_resource to an ignore list — that suppresses the specimen without answering which of the three above is true, and the next benign-but-noisy boot line reopens this.
publish-smoke / packed-tarballshas been failing onmainsince ~2026-09-09T01:07Z. It is a status check on the Version Packages PR (#15334), so it currently blocks the release — and that release is the one open action on #16500 (the published on-ramp is broken for every new user until it ships).⛔ Filed by the seat that hit it while verifying #16500's release path. Main-red is shared damage, so it is filed rather than worked around.
domain:*andpriority:*are triage's to set — deliberately not set here.The failure
Run
34304339043, jobPacked-tarball smoke (release candidate), onmain@d127f9b:No probe ever ran — the job exits on the boot scan.
⭐ The line is a caught, by-design no-op — quoted from the vendor
@better-auth/oauth-provider@1.7.2,dist/introspect-*.mjs, docblock over the resource seeder (read from the published tarball):⇒ The vendor deliberately uses the UNIQUE violation as its race-safety mechanism and swallows it. Our SQL driver logs the exception at ERROR on the way out, before the vendor catches it, and the boot scan then reads that line as a failed boot.
Why it appeared now — the gate is 5 hours old
b810fd0— test(publish-smoke): judge the boot before the probes run (#16976) lands, adding the boot-window error scanpacked-tarballsred on main, repeatedlyFailing runs on
main, all same job:34297886522(01:07Z) ·34298625221(01:18Z) ·34299337307(01:28Z) ·34300907710(01:52Z) ·34302122333(02:10Z) ·34304339043(02:43Z). Interleaved runs showcancelledbecause the next push superseded them.⇒ The defect is not in the release candidate's product code. The gate started asserting something new, and this pre-existing benign log line fails it. ⛔ The maintainer's merge attempt did not cause this.
⭐ What this run DOES prove: the better-auth fix works
Same log, boot summary:
Authis loaded. There is noAuthPlugin failed to load. The exact-pin fix (#16634) does clear #16500's root cause in the packed 17.4.0 artifacts — measured, not inferred.NOT MEASURED
objectstack devboot colliding with itself is worth understanding; it may be a secondbetterAuth()instance rather than a true two-process race.Suggested shape (for whoever picks this up)
Three candidate repairs, in the order this seat would try them:
failed to load) — rather than every error-level line._SqlDriver.createlogs ERROR and then throws; the throw is the real signal and the caller handles it. Logging ERROR for an exception you are about to hand to a caller double-reports it.⛔ Do not simply add
sys_oauth_resourceto an ignore list — that suppresses the specimen without answering which of the three above is true, and the next benign-but-noisy boot line reopens this.Related
b810fd0— the PR that added the boot scan.completed).@objectstack/plugin-auth@17.4.0with the exact1.7.2pin.