Commit 4dbef455beb for woocommerce
commit 4dbef455bebb1354b88e12aec839a8da06d876ea
Author: Adrian Moldovan <3854374+adimoldovan@users.noreply.github.com>
Date: Mon Jul 13 12:37:39 2026 +0300
Classify Docker Hub 'connection reset by peer' wp-env-start retries as reason=dockerhub (#66507)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 10d5072d31e..0766e1eee82 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -272,9 +272,10 @@ jobs:
if: ${{ matrix.testEnv.shouldCreate }}
# `wp-env start` fails on transient network timeouts from several subsystems:
# composer fetching packagist inside the Docker build ("curl error 28"), wp-env's
- # own `got` client downloading WordPress core ("ETIMEDOUT"/"socket hang up"), and the Docker daemon
- # pulling images from Docker Hub ("context deadline exceeded"). Retry the whole
- # start to ride out those blips -- BuildKit reuses layers that already succeeded,
+ # own `got` client downloading WordPress core ("ETIMEDOUT"/"socket hang up"), and
+ # the Docker daemon pulling images from Docker Hub ("context deadline exceeded"/
+ # "connection reset by peer"). Retry the whole start to ride out those blips --
+ # BuildKit reuses layers that already succeeded,
# so a retry only re-runs whatever failed. Each retried attempt emits a
# "::warning::wp-env-start-retry reason=<subsystem>" marker (grep-friendly) so the
# underlying incident rate stays measurable even when the retry keeps the job green.
@@ -288,7 +289,7 @@ jobs:
# We retry regardless of cause -- transient failures aren't limited to the
# patterns below, so reason= is for monitoring only, not a retry gate.
if grep -qF 'curl error 28' "$log"; then reason=packagist
- elif grep -qE 'registry-1\.docker\.io|context deadline exceeded' "$log"; then reason=dockerhub
+ elif grep -qE 'registry-1\.docker\.io|context deadline exceeded|failed to receive status: rpc error|connection reset by peer' "$log"; then reason=dockerhub
elif grep -qE 'ETIMEDOUT|socket hang up|ECONNRESET' "$log"; then reason=wordpress
else reason=unknown
fi