Skip to content

fix(installer): keep retrying readiness while the published port resets - #237

Merged
ttbombadil merged 1 commit into
mainfrom
fix/installer-readiness-retry
Oct 9, 2026
Merged

ttbombadil merged 1 commit into
mainfrom
fix/installer-readiness-retry

Conversation

@ttbombadil

Copy link
Copy Markdown
Collaborator

Problem

On a fresh Ubuntu 26.04 VM, scripts/install-ubuntu-vbox.sh aborted with "Der Backenddienst wurde gestartet, meldet aber keine Readiness".

Right after docker compose up -d, Docker's published port 127.0.0.1:3000 accepts connections and resets them until the backend listens (about 0.3 s later). curl reports that as exit 56, which neither --retry nor --retry-connrefused retries. The check gave up after one attempt, and the installation stopped before TLS and Nginx.

Reproduced on the VM 3/3 with the installer's curl options against a restarted container; 3/3 succeeded with --retry-all-errors. CI did not catch it because the deployment jobs use the renderer, not the installer script.

Change

  • Both readiness checks (backend and HTTPS gateway) also pass --retry-all-errors. Nothing else in the installer or deployment changes.
  • curl version: --retry-all-errors needs curl ≥ 7.71. Ubuntu 22.04 ships 7.81, 24.04 ships 8.5, 26.04 ships 8.18. The installer already requires docker-compose-v2 from these releases, so no documentation change is needed.

Regression test

tests/server/ubuntu-vbox-installer-readiness.test.ts reads the curl options of both readiness checks from the installer and runs them against a TCP server that resets the first connection (resetAndDestroy, a real RST).

Installer Result
Fixed both checks retry and return {"status":"ready"}
Old (main) both checks fail with exit 56, same as on the VM

A further case documents that connection-refused retries alone give up after one reset.

Verification

  • Targeted checks: the new test, ubuntu-vbox-capacity-defaults, scripts/test-install-ubuntu-vbox.sh, bash -n and shellcheck all pass.
  • npm run check, ESLint, check:docs and git diff --check pass.
  • ./run-tests.sh passes 11/11: Docker 32/32, E2E 27/27, Sonar gate PASSED with 0 violations.

🤖 Generated with Claude Code

On a fresh Ubuntu VM the Ubuntu/VBox installer aborted at its backend
readiness check. Right after `docker compose up -d`, Docker's published
port accepts connections and resets them until the backend listens
(about 0.3 s later). curl reports that as exit 56, which neither
`--retry` nor `--retry-connrefused` retries, so the check gave up after
one attempt and the installation stopped before TLS and Nginx.

Both readiness checks now also pass `--retry-all-errors` (curl 7.71+;
Ubuntu 22.04 ships 7.81). The regression test runs the installer's own
curl options against a server that resets the first connection.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ttbombadil
ttbombadil merged commit c513ec8 into main Oct 9, 2026
6 checks passed
@ttbombadil
ttbombadil deleted the fix/installer-readiness-retry branch October 9, 2026 15:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant