Files
devx/docs/specs/DEVX-163.md
T
emil 86e57a1fcd
CI / validate (pull_request) Successful in 1m12s
CI / auto-merge (pull_request) Successful in 16s
fix: check stdout for HTTP 500 in _run_push (docker sends to stdout)
Docker push sends 'received unexpected HTTP status: 500' to stdout,
not stderr. The retry logic added in DEVX-162 only checked stderr, so
it never triggered. Now checks both streams. Also updates the 'already
exists' check to use combined stdout+stderr.

# Implements: REQ-1, REQ-2
2026-08-26 15:38:19 +02:00

34 lines
1.2 KiB
Markdown

# DEVX-163: Fix _run_push to check stdout for HTTP 500
## Problem
`_run_push` only checked `result.stderr` for HTTP 500, but docker push
sends the "received unexpected HTTP status: 500 Internal Server Error"
message to **stdout**, not stderr. This means the tenacity retry logic
added in DEVX-162 never triggered — the push failed immediately without
retrying.
## Approach
Check both `result.stdout` and `result.stderr` for the "500" status code.
Also update the "already exists" check in `push_image` to check both
streams, since docker may send that message to stdout as well.
REQ-1: _run_push checks both stdout and stderr for HTTP 500
REQ-2: push_image "already exists" check uses combined stdout+stderr
REQ-3: All existing tests pass with 100% coverage
## Test Plan
- Unit tests for stdout 500 detection
- Unit tests for stderr 500 detection
- Manual: trigger build-images workflow and verify retry works
## Deploy Plan
- Merge to master
## Rollback Plan
- Revert the merge commit
## Acceptance Criteria
- [x] REQ-1: _run_push checks both stdout and stderr for HTTP 500
- [x] REQ-2: push_image "already exists" check uses combined stdout+stderr
- [x] REQ-3: All existing tests pass with 100% coverage