diff --git a/server/jetstream_api.go b/server/jetstream_api.go index 2855b2f57e7..b3617563543 100644 --- a/server/jetstream_api.go +++ b/server/jetstream_api.go @@ -2833,7 +2833,7 @@ func (s *Server) jsLeaderStepDownRequest(sub *subscription, c *client, _ *Accoun var preferredLeader string var resp = JSApiLeaderStepDownResponse{ApiResponse: ApiResponse{Type: JSApiLeaderStepDownResponseType}} - if isJSONObjectOrArray(msg) { + if !isEmptyRequest(msg) { var req JSApiLeaderStepdownRequest if err := json.Unmarshal(msg, &req); err != nil { resp.Error = NewJSInvalidJSONError(err) diff --git a/server/jetstream_test.go b/server/jetstream_test.go index 52c62c54fda..7991bfbc9c5 100644 --- a/server/jetstream_test.go +++ b/server/jetstream_test.go @@ -6712,6 +6712,21 @@ func TestJetStreamSystemLimitsPlacement(t *testing.T) { t.Fatalf("unexpected memory stream create success, maxBytes=%d, replicas=%d", si.Config.MaxBytes, si.Config.Replicas) } + + t.Run("meta info placement in request", func(t *testing.T) { + nc, err = nats.Connect(largeSrv.ClientURL(), nats.UserInfo("admin", "s3cr3t!")) + require_NoError(t, err) + defer nc.Close() + + var resp JSApiLeaderStepDownResponse + ncResp, err := nc.Request(JSApiLeaderStepDown, []byte("{}"), 3*time.Second) + require_NoError(t, err) + err = json.Unmarshal(ncResp.Data, &resp) + require_NoError(t, err) + require_True(t, resp.Error == nil) + require_True(t, resp.Success) + + }) } func TestJetStreamStreamLimitUpdate(t *testing.T) {