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

1.2 KiB

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

  • 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