From 1128a81071fa5e48eb3dfa8b8729ef78399b70cf Mon Sep 17 00:00:00 2001 From: Nova Cat Date: Mon, 26 Jan 2026 21:49:37 -0800 Subject: [PATCH] Ignore TCP errors (#601) --- internal/web/server/middlewares.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/internal/web/server/middlewares.go b/internal/web/server/middlewares.go index 834eed5..ceb24e5 100644 --- a/internal/web/server/middlewares.go +++ b/internal/web/server/middlewares.go @@ -8,6 +8,7 @@ import ( "path/filepath" "regexp" "strings" + "syscall" "time" "github.com/labstack/echo-contrib/echoprometheus" @@ -90,21 +91,33 @@ func (s *Server) errorHandler(err error, ctx echo.Context) { data["error"] = err if acceptJson { if err := ctx.JSON(httpErr.Code, httpErr); err != nil { + if errors.Is(err, syscall.EPIPE) || errors.Is(err, syscall.ECONNRESET) { + return + } log.Fatal().Err(err).Send() } return } if err := ctx.Render(httpErr.Code, "error", data); err != nil { + if errors.Is(err, syscall.EPIPE) || errors.Is(err, syscall.ECONNRESET) { + return + } log.Fatal().Err(err).Send() } return } + if errors.Is(err, syscall.EPIPE) || errors.Is(err, syscall.ECONNRESET) { + return + } log.Error().Err(err).Send() httpErr = echo.NewHTTPError(http.StatusInternalServerError, err.Error()) data["error"] = httpErr if err := ctx.Render(500, "error", data); err != nil { + if errors.Is(err, syscall.EPIPE) || errors.Is(err, syscall.ECONNRESET) { + return + } log.Fatal().Err(err).Send() } }