From f21f5d545f5ce16a12bed556a63ac5c7764559cd Mon Sep 17 00:00:00 2001 From: Periklis Tsirakidis Date: Mon, 17 Nov 2025 20:30:39 +0100 Subject: [PATCH] fix(server): return status bad request code for interval limit error (#19895) --- pkg/util/server/error.go | 1 + pkg/util/server/error_test.go | 1 + 2 files changed, 2 insertions(+) diff --git a/pkg/util/server/error.go b/pkg/util/server/error.go index 9f0013f7fe..9f6c95877a 100644 --- a/pkg/util/server/error.go +++ b/pkg/util/server/error.go @@ -90,6 +90,7 @@ func ClientHTTPStatusAndError(err error) (int, error) { case errors.As(err, &queryErr): return http.StatusBadRequest, err case errors.Is(err, logqlmodel.ErrLimit) || + errors.Is(err, logqlmodel.ErrIntervalLimit) || errors.Is(err, logqlmodel.ErrParse) || errors.Is(err, logqlmodel.ErrPipeline) || errors.Is(err, logqlmodel.ErrBlocked) || diff --git a/pkg/util/server/error_test.go b/pkg/util/server/error_test.go index b0f593c094..af5effcff6 100644 --- a/pkg/util/server/error_test.go +++ b/pkg/util/server/error_test.go @@ -44,6 +44,7 @@ func Test_writeError(t *testing.T) { {"mixed context and rpc deadline", util.MultiError{context.DeadlineExceeded, status.New(codes.DeadlineExceeded, context.DeadlineExceeded.Error()).Err()}, ErrDeadlineExceeded, http.StatusGatewayTimeout}, {"mixed context, rpc deadline and another", util.MultiError{errors.New("standard error"), context.DeadlineExceeded, status.New(codes.DeadlineExceeded, context.DeadlineExceeded.Error()).Err()}, "3 errors: standard error; context deadline exceeded; rpc error: code = DeadlineExceeded desc = context deadline exceeded", http.StatusInternalServerError}, {"parse error", logqlmodel.ParseError{}, "parse error : ", http.StatusBadRequest}, + {"interval limit", logqlmodel.ErrIntervalLimit, logqlmodel.ErrIntervalLimit.Error(), http.StatusBadRequest}, {"httpgrpc", httpgrpc.Errorf(http.StatusBadRequest, "%s", errors.New("foo").Error()), "foo", http.StatusBadRequest}, {"internal", errors.New("foo"), "foo", http.StatusInternalServerError}, {"query error", storage_errors.ErrQueryMustContainMetricName, storage_errors.ErrQueryMustContainMetricName.Error(), http.StatusBadRequest},