From 589c8adc6ddb64bb5f3972b66a91f53e7ef6643e Mon Sep 17 00:00:00 2001 From: Magnus Schieder Date: Tue, 15 Sep 2026 14:43:26 +0200 Subject: [PATCH 1/2] Add retry for 'no route to host' --- internal/manage/actions/migrations/migrations.go | 1 + internal/manage/actions/migrations/migrations_test.go | 1 + 2 files changed, 2 insertions(+) diff --git a/internal/manage/actions/migrations/migrations.go b/internal/manage/actions/migrations/migrations.go index 953b82f..10fc707 100644 --- a/internal/manage/actions/migrations/migrations.go +++ b/internal/manage/actions/migrations/migrations.go @@ -361,6 +361,7 @@ func isRetryableError(err error) bool { "eof", "broken pipe", "i/o timeout", + "connect: no route to host", } for _, pattern := range retryablePatterns { diff --git a/internal/manage/actions/migrations/migrations_test.go b/internal/manage/actions/migrations/migrations_test.go index 9d4298d..a5405b9 100644 --- a/internal/manage/actions/migrations/migrations_test.go +++ b/internal/manage/actions/migrations/migrations_test.go @@ -211,6 +211,7 @@ func TestIsRetryableError(t *testing.T) { {"connection reset", "connection reset by peer", true}, {"timeout", "i/o timeout", true}, {"eof", "unexpected EOF", true}, + {"no route to host", "connect: no route to host", true}, {"server error 503", "server returned 503", true}, {"server error 502", "bad gateway 502", true}, {"server error 504", "gateway timeout 504", true}, From 274264c404238d14c5a04439bc63a9b6e557bfb3 Mon Sep 17 00:00:00 2001 From: Magnus Schieder Date: Tue, 15 Sep 2026 14:58:40 +0200 Subject: [PATCH 2/2] Adjust retries attempts --- internal/constants/constants.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/constants/constants.go b/internal/constants/constants.go index e3f6de2..de315d6 100644 --- a/internal/constants/constants.go +++ b/internal/constants/constants.go @@ -230,10 +230,10 @@ const ( FinalizationStatusFailed string = "finalization_failed" // MigrationMaxRetries is the maximum number of retry attempts for failed migration requests - MigrationMaxRetries int = 5 + MigrationMaxRetries int = 8 // MigrationRetryDelay is the delay between retry attempts - MigrationRetryDelay time.Duration = 5 * time.Second + MigrationRetryDelay time.Duration = 3 * time.Second // MigrationTotalTimeout is the maximum time allowed for all retry attempts MigrationTotalTimeout time.Duration = 3 * time.Minute