diff --git a/server/events_test.go b/server/events_test.go index 28bc4c9cc4..1c4165700f 100644 --- a/server/events_test.go +++ b/server/events_test.go @@ -1515,6 +1515,7 @@ func TestAccountClaimsUpdatesWithServiceImports(t *testing.T) { nc.Publish(claimUpdateSubj, []byte(ajwt2)) } nc.Flush() + time.Sleep(50 * time.Millisecond) if startSubs < s.NumSubscriptions() { t.Fatalf("Subscriptions leaked: %d vs %d", startSubs, s.NumSubscriptions()) diff --git a/server/jetstream_api.go b/server/jetstream_api.go index 8229b5a071..1edc97b0bb 100644 --- a/server/jetstream_api.go +++ b/server/jetstream_api.go @@ -890,10 +890,17 @@ func (s *Server) sendAPIErrResponse(ci *ClientInfo, acc *Account, subject, reply const errRespDelay = 500 * time.Millisecond func (s *Server) sendDelayedAPIErrResponse(ci *ClientInfo, acc *Account, subject, reply, request, response string, rg *raftGroup) { + js := s.getJetStream() + if js == nil { + return + } var quitCh <-chan struct{} + js.mu.RLock() if rg != nil && rg.node != nil { quitCh = rg.node.QuitC() } + js.mu.RUnlock() + s.startGoRoutine(func() { defer s.grWG.Done() select {