The nightly release smoke has been flaking for a week — failing 2026-08-21,
-23, -24, -26 and -27 while passing on the days between, on identical
inputs. Each failure was `could not sign up or sign in admin user`, and
because publish_nightly needs smoke, every one of those days published no
nightly and the release train stalled.
`/api/health` answering 200 is not a promise that auth can serve a write.
The container cold-installs paperclipai and brings up embedded postgres, and
there is a window where health answers while a sign-up still fails. The
bootstrap made exactly one sign-up attempt and one sign-in attempt inside
that window, so whether the release train moved came down to timing.
Retry the pair until a deadline. Sign-in already covers a data dir that
holds the admin, including one created by an earlier pass, so repeating the
pair is safe.
Also print the HTTP status on failure. It was in hand the whole time and
never surfaced: the message printed the response body, and a sign-up that
could not connect has none, so a week of failures produced "Sign-up
response:" followed by a blank line and nothing to act on.
Tested without Docker by driving the real functions out of the script with a
stubbed request helper — extracted rather than restated, so the test cannot
drift from what CI runs.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>