✗Verify deploy to production#420 failure
AI failure analysis
Not analysed yet. Autopilot picks failed runs up on a five-minute tick; this runs it now instead of waiting.
✗verify-deployfailure6m 5s
✗365.3sexit 1
Wait for production to serve this commit
$ SHA=$(git rev-parse HEAD)
echo "verifying deploy of $SHA"
for i in $(seq 1 36); do
LIVE=$(wget -qO- --timeout=10 https://gluecron.com/api/version 2>/dev/null | sed -n 's/.*"shaFull":"\([a-f0-9]*\)".*/\1/p' || true)
if [ "$LIVE" = "$SHA" ]; then
echo "deploy verified: production serves $SHA (after ~$((i * 10))s)"
exit 0
fi
echo "attempt $i/36 — production serves ${LIVE:-unknown}, waiting..."
sleep 10
done
echo "DEPLOY NOT VERIFIED after 6 minutes — the gluecron-update timer may be stuck."
echo "On the host: systemctl list-timers 'gluecron-*' && journalctl -u gluecron-update"
exit 1–0ms
Readiness gates against the live build
$ set +e
bun scripts/production-readiness.mjs --base https://gluecron.com --no-browser
CODE=$?
set -e
if [ "$CODE" = "1" ]; then
echo "READINESS FAILED — a hard gate broke on the build now serving production."
exit 1
fi
if [ "$CODE" = "3" ]; then
echo "Readiness INCONCLUSIVE — every gate this runner can execute passed;"
echo "the browser and credentialed gates need 'bun run readiness:full' from a workstation."
exit 0
fi
if [ "$CODE" != "0" ]; then
echo "READINESS CRASHED (exit $CODE)"
exit 1
fi==> Wait for production to serve this commit
$ SHA=$(git rev-parse HEAD)
echo "verifying deploy of $SHA"
for i in $(seq 1 36); do
LIVE=$(wget -qO- --timeout=10 https://gluecron.com/api/version 2>/dev/null | sed -n 's/.*"shaFull":"\([a-f0-9]*\)".*/\1/p' || true)
if [ "$LIVE" = "$SHA" ]; then
echo "deploy verified: production serves $SHA (after ~$((i * 10))s)"
exit 0
fi
echo "attempt $i/36 — production serves ${LIVE:-unknown}, waiting..."
sleep 10
done
echo "DEPLOY NOT VERIFIED after 6 minutes — the gluecron-update timer may be stuck."
echo "On the host: systemctl list-timers 'gluecron-*' && journalctl -u gluecron-update"
exit 1
verifying deploy of 45425952f5e0ede44e7bd680e0f2a91ef54b3764
attempt 1/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 2/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 3/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 4/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 5/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 6/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 7/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 8/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 9/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 10/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 11/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 12/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 13/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 14/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 15/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 16/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 17/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 18/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 19/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 20/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 21/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 22/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 23/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 24/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 25/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 26/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 27/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 28/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 29/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 30/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 31/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 32/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 33/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 34/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 35/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
attempt 36/36 — production serves 20513ec3b948ccd10646eb7fafeaba865f84439d, waiting...
DEPLOY NOT VERIFIED after 6 minutes — the gluecron-update timer may be stuck.
On the host: systemctl list-timers 'gluecron-*' && journalctl -u gluecron-update
[exit 1 in 365262ms]