diff --git a/endpoints/openrtb2/amp_auction.go b/endpoints/openrtb2/amp_auction.go index cb494d28769..1276f4addf9 100644 --- a/endpoints/openrtb2/amp_auction.go +++ b/endpoints/openrtb2/amp_auction.go @@ -209,7 +209,7 @@ func (deps *endpointDeps) AmpAuction(w http.ResponseWriter, r *http.Request, _ h for _, er := range errL { errCode := errortypes.ReadCode(er) if errCode == errortypes.BlockedAppErrorCode || errCode == errortypes.AccountDisabledErrorCode { - httpStatus = http.StatusServiceUnavailable + httpStatus = http.StatusForbidden metricsStatus = metrics.RequestStatusBlockedApp break } diff --git a/endpoints/openrtb2/auction.go b/endpoints/openrtb2/auction.go index bebaab091b5..a09f2d3f830 100644 --- a/endpoints/openrtb2/auction.go +++ b/endpoints/openrtb2/auction.go @@ -1920,12 +1920,12 @@ func writeError(errs []error, w http.ResponseWriter, labels *metrics.Labels) boo httpStatus := http.StatusBadRequest metricsStatus := metrics.RequestStatusBadInput for _, err := range errs { - erVal := errortypes.ReadCode(err) - if erVal == errortypes.BlockedAppErrorCode || erVal == errortypes.AccountDisabledErrorCode { - httpStatus = http.StatusServiceUnavailable + switch errortypes.ReadCode(err) { + case errortypes.BlockedAppErrorCode, errortypes.AccountDisabledErrorCode: + httpStatus = http.StatusForbidden metricsStatus = metrics.RequestStatusBlockedApp break - } else if erVal == errortypes.MalformedAcctErrorCode { + case errortypes.MalformedAcctErrorCode: httpStatus = http.StatusInternalServerError metricsStatus = metrics.RequestStatusAccountConfigErr break diff --git a/endpoints/openrtb2/sample-requests/account-required/with-account/required-disabled-acct.json b/endpoints/openrtb2/sample-requests/account-required/with-account/required-disabled-acct.json index 31a0021b7c1..4e00228a4cd 100644 --- a/endpoints/openrtb2/sample-requests/account-required/with-account/required-disabled-acct.json +++ b/endpoints/openrtb2/sample-requests/account-required/with-account/required-disabled-acct.json @@ -85,6 +85,6 @@ } } }, - "expectedReturnCode": 503, + "expectedReturnCode": 403, "expectedErrorMessage": "Invalid request: Prebid-server has disabled Account ID: disabled_acct, please reach out to the prebid server host.\n" } diff --git a/endpoints/openrtb2/sample-requests/blocked/blocked-app.json b/endpoints/openrtb2/sample-requests/blocked/blocked-app.json index 88e0ed43496..48e844672e4 100644 --- a/endpoints/openrtb2/sample-requests/blocked/blocked-app.json +++ b/endpoints/openrtb2/sample-requests/blocked/blocked-app.json @@ -82,6 +82,6 @@ } } }, - "expectedReturnCode": 503, + "expectedReturnCode": 403, "expectedErrorMessage": "Invalid request: Prebid-server does not process requests from App ID: spam_app\n" } diff --git a/endpoints/openrtb2/video_auction.go b/endpoints/openrtb2/video_auction.go index 04dffb1dda1..5ee113cc9e3 100644 --- a/endpoints/openrtb2/video_auction.go +++ b/endpoints/openrtb2/video_auction.go @@ -428,16 +428,16 @@ func handleError(labels *metrics.Labels, w http.ResponseWriter, errL []error, vo var errors string var status int = http.StatusInternalServerError for _, er := range errL { - erVal := errortypes.ReadCode(er) - if erVal == errortypes.BlockedAppErrorCode || erVal == errortypes.AccountDisabledErrorCode { - status = http.StatusServiceUnavailable + switch errortypes.ReadCode(er) { + case errortypes.BlockedAppErrorCode, errortypes.AccountDisabledErrorCode: + status = http.StatusForbidden labels.RequestStatus = metrics.RequestStatusBlockedApp break - } else if erVal == errortypes.AcctRequiredErrorCode { + case errortypes.AcctRequiredErrorCode: status = http.StatusBadRequest labels.RequestStatus = metrics.RequestStatusBadInput break - } else if erVal == errortypes.MalformedAcctErrorCode { + case errortypes.MalformedAcctErrorCode: status = http.StatusInternalServerError labels.RequestStatus = metrics.RequestStatusAccountConfigErr break diff --git a/endpoints/openrtb2/video_auction_test.go b/endpoints/openrtb2/video_auction_test.go index 1a4d4f99346..f14c6f69bcf 100644 --- a/endpoints/openrtb2/video_auction_test.go +++ b/endpoints/openrtb2/video_auction_test.go @@ -813,15 +813,15 @@ func TestHandleError(t *testing.T) { giveErrors: []error{ &errortypes.AccountDisabled{}, }, - wantCode: 503, + wantCode: http.StatusForbidden, wantMetricsStatus: metrics.RequestStatusBlockedApp, }, { - description: "Blocked app - return 503 with blocked metrics status", + description: "Blocked app - return 403 with blocked metrics status", giveErrors: []error{ &errortypes.BlockedApp{}, }, - wantCode: 503, + wantCode: http.StatusForbidden, wantMetricsStatus: metrics.RequestStatusBlockedApp, }, {