carlos / platform Public

Claim generation marker client ignores CARLOS_S3_ENDPOINT, so claim mode on MinIO fails generation publication Issue open

newProductionClaimMarkers (internal/host/claimproduction_marker.go:21) builds its client with plain s3.NewFromConfig(cfg), without s3compat.Options(). The other bucket clients do apply it, and that is where CARLOS_S3_ENDPOINT takes effect.

Effect: on a deployment whose bucket is S3-compatible (MinIO, set through CARLOS_S3_ENDPOINT) with claim mode on, ordinary bucket operations succeed. But the instances/<host>/generation.json marker write goes to AWS and fails (internal/host/claimowners.go:586), so generation publication fails.

Fix: pass s3compat.Options() to s3.NewFromConfig there. Add a test that the marker client honours the endpoint, alongside the other TestDeliveredContractMinio-style checks. A grep for any other s3.NewFromConfig without s3compat.Options would be worth doing too.

Found by Astra in region HA spec 2's provider-boundary review (round 13, docs/superpowers/specs/CODEX-FINDINGS-REGION-HA-SPEC2-13.md on design-region-ha-two-box, finding 3). This is claim code (platform-1e). It doesn't affect carloku.com, which uses AWS S3, but it does affect any self-hoster on MinIO who turns on claim mode.