diff --git a/contrib/codecs/http/handler.go b/contrib/codecs/http/handler.go
index b5742441bd7b3a76d5da290505390f8c96d489ab..8ce711e7be3b5eb2aced347d1f0c6af069ce6578 100644
--- a/contrib/codecs/http/handler.go
+++ b/contrib/codecs/http/handler.go
@@ -1,12 +1,15 @@
 package http
 
 import (
+	"context"
+	"errors"
 	"net/http"
 	"sync"
 
-	"gfx.cafe/open/jrpc/pkg/server"
 	"golang.org/x/net/http2"
 	"golang.org/x/net/http2/h2c"
+
+	"gfx.cafe/open/jrpc/pkg/server"
 )
 
 func HttpHandler(s *server.Server) http.Handler {
@@ -31,9 +34,9 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 	c := NewCodec(w, r)
 	w.Header().Set("content-type", contentType)
 	err := s.Server.ServeCodec(r.Context(), c)
-	if err != nil {
-		//	slog.Error("codec err", "err", err)
+	if err != nil && !errors.Is(err, context.Canceled) {
+		//  slog.Error("codec err", "err", err)
+		http.Error(w, "Internal Error", http.StatusInternalServerError)
 	}
-	http.Error(w, "Internal Error", http.StatusInternalServerError)
 	<-c.Closed()
 }
diff --git a/pkg/server/server.go b/pkg/server/server.go
index 2139d548d5955a1e0bc022bbf4a72fae4b170db7..047214703c2465385cfcaea39d257891bd1f0a8b 100644
--- a/pkg/server/server.go
+++ b/pkg/server/server.go
@@ -5,9 +5,10 @@ import (
 	"errors"
 	"sync"
 
-	"gfx.cafe/open/jrpc/pkg/jsonrpc"
 	"golang.org/x/sync/semaphore"
 
+	"gfx.cafe/open/jrpc/pkg/jsonrpc"
+
 	"gfx.cafe/util/go/bufpool"
 
 	"github.com/go-faster/jx"