Skip to content

Commit f9515ed

Browse files
Merge pull request #68 from SwiftPackageIndex/issue-3734
Handle 502 bad gateway when checking for redirects
2 parents f57b97e + 66c391f commit f9515ed

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

Sources/ValidatorCore/RedirectFollower.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,14 @@ private func resolveRedirects(client: Client, for url: PackageURL) async throws
8686
print("Sleeping for \(delay)s ...")
8787
try await Task.sleep(nanoseconds: NSEC_PER_SEC * delay)
8888
return try await _resolveRedirects(client: client, for: url)
89+
case 502: // bad gateway, https://github.com/SwiftPackageIndex/SwiftPackageIndex-Server/issues/3734
90+
// increment hopCount as a way to limit the number of retries (even though it's
91+
// not a true "hop")
92+
hopCount += 1
93+
let delay: UInt64 = 3
94+
print("Sleeping for \(delay)s ...")
95+
try await Task.sleep(nanoseconds: NSEC_PER_SEC * delay)
96+
return try await _resolveRedirects(client: client, for: url)
8997
default:
9098
throw AppError.runtimeError("unexpected status '\(response.status.code)' for url: \(url.absoluteString)")
9199
}

0 commit comments

Comments
 (0)