File tree Expand file tree Collapse file tree 1 file changed +10
-3
lines changed
Sources/AsyncURLSession/NetworkManger/Provider Expand file tree Collapse file tree 1 file changed +10
-3
lines changed Original file line number Diff line number Diff line change @@ -58,18 +58,25 @@ public class AsyncProvider<T: TargetType> {
5858
5959 case 500 :
6060 Log . error ( " Internal Server Error (500), attempting to decode response (Retry Count: \( retryCount + 1 ) ) " )
61-
61+
6262 if retryCount < maxRetryCount {
6363 do {
64- // 500 에러일 때 데이터를 제네릭 D 타입으로 디코딩 시도
64+ // 500 상태 코드일 때도 데이터를 디코딩 시도
6565 return try decodeErrorResponseData ( data: data, decodeTo: D . self)
6666 } catch {
6767 Log . error ( " Decoding failed for 500 error response, retrying... (Retry Count: \( retryCount + 1 ) ) " )
6868 return try await executeWithRetry ( request: request, decodeTo: type, retryCount: retryCount + 1 )
6969 }
7070 } else {
7171 Log . error ( " Failed after 3 retries for 500 error response " )
72- throw DataError . unhandledStatusCode ( httpResponse. statusCode)
72+
73+ // 500 상태 코드에서 실패할 경우에도 ErrorResponse를 처리하려고 시도
74+ if let errorResponse = try ? decodeErrorResponseData ( data: data, decodeTo: D . self) {
75+ Log . debug ( " Decoded ErrorResponse with 500 status code " )
76+ return errorResponse
77+ } else {
78+ throw DataError . unhandledStatusCode ( httpResponse. statusCode)
79+ }
7380 }
7481
7582 default :
You can’t perform that action at this time.
0 commit comments