Symptom
Every apply=true deploy fails after the stack has already been applied:
sst-with-cloudflare: SST deploy completed, but deployment verification failed:
Public API supported images sandbaseai-hermes are missing
Observed on run 30743198414 (stage dev). The proxy half of verification passes
(Proxy routing verified (1/1 healthy)); the public half retries 7 times over
~60s and then fails the job.
Cause
verifyPublicDeployment compares apiConfig.supportedImages against the images
named in BOXLITE_SYSTEM_IMAGES (apps/infra/scripts/proxy-deployment-verify.mjs).
/api/config does not carry that field yet — apps/api/src/config/dto/configuration.dto.ts
has no such property.
That check is the acceptance criterion for #1045, which is still open. It was
merged in #1093 ahead of the API work it tests.
The check is gated on BOXLITE_SYSTEM_IMAGES being non-empty, so no CI path
arms it and the suite stays green; only a real .env triggers it.
Consequence
Verification runs after sst deploy exits 0
(apps/infra/scripts/sst-with-cloudflare.mjs:259), so the job reports a broken
deployment that in fact applied cleanly. It fails the run without rolling
anything back.
Fix
Remove the assertion until #1045 ships, then reinstate it as that issue's
acceptance test. The BOXLITE_SYSTEM_IMAGES format validation is unaffected and
should stay — it rejects a malformed entry before SST mutates the stack.
Symptom
Every
apply=truedeploy fails after the stack has already been applied:Observed on run 30743198414 (stage
dev). The proxy half of verification passes(
Proxy routing verified (1/1 healthy)); the public half retries 7 times over~60s and then fails the job.
Cause
verifyPublicDeploymentcomparesapiConfig.supportedImagesagainst the imagesnamed in
BOXLITE_SYSTEM_IMAGES(apps/infra/scripts/proxy-deployment-verify.mjs)./api/configdoes not carry that field yet —apps/api/src/config/dto/configuration.dto.tshas no such property.
That check is the acceptance criterion for #1045, which is still open. It was
merged in #1093 ahead of the API work it tests.
The check is gated on
BOXLITE_SYSTEM_IMAGESbeing non-empty, so no CI patharms it and the suite stays green; only a real
.envtriggers it.Consequence
Verification runs after
sst deployexits 0(
apps/infra/scripts/sst-with-cloudflare.mjs:259), so the job reports a brokendeployment that in fact applied cleanly. It fails the run without rolling
anything back.
Fix
Remove the assertion until #1045 ships, then reinstate it as that issue's
acceptance test. The
BOXLITE_SYSTEM_IMAGESformat validation is unaffected andshould stay — it rejects a malformed entry before SST mutates the stack.