From 687c75b1715cf85a1398e5446735fe577881220f Mon Sep 17 00:00:00 2001 From: lindseyr Date: Tue, 12 May 2026 12:01:41 -0700 Subject: [PATCH] Preserve failure status set by recordFinalError in buildZuulHttpResponse When origin.recordFinalError() sets a specific failure StatusCategory (e.g. from a subclass override), the subsequent unconditional setStatusCategory call was overwriting it with the generic status derived from the response code. Switch to storeStatusCategoryIfNotAlreadyFailure so that a failure status set by recordFinalError is never clobbered. Co-Authored-By: Claude Sonnet 4.6 --- .../java/com/netflix/zuul/filters/endpoint/ProxyEndpoint.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zuul-core/src/main/java/com/netflix/zuul/filters/endpoint/ProxyEndpoint.java b/zuul-core/src/main/java/com/netflix/zuul/filters/endpoint/ProxyEndpoint.java index 0391437546..81416cb7cb 100644 --- a/zuul-core/src/main/java/com/netflix/zuul/filters/endpoint/ProxyEndpoint.java +++ b/zuul-core/src/main/java/com/netflix/zuul/filters/endpoint/ProxyEndpoint.java @@ -910,7 +910,7 @@ private HttpResponseMessage buildZuulHttpResponse( // Collect some info about the received response. origin.recordFinalResponse(zuulResponse); origin.recordFinalError(zuulRequest, ex); - StatusCategoryUtils.setStatusCategory(zuulCtx, statusCategory); + StatusCategoryUtils.storeStatusCategoryIfNotAlreadyFailure(zuulCtx, statusCategory); zuulCtx.setError(ex); zuulCtx.put("origin_http_status", Integer.toString(respStatus));