From 7a5c7c117fb11a7f0172c92f15eaa29f297896b5 Mon Sep 17 00:00:00 2001 From: Laptop Kitty Date: Sun, 25 Jan 2026 13:51:23 -0800 Subject: [PATCH] Ignore TCP errors Fixes: #594 --- internal/web/server/middlewares.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/web/server/middlewares.go b/internal/web/server/middlewares.go index a703fff..e1803ba 100644 --- a/internal/web/server/middlewares.go +++ b/internal/web/server/middlewares.go @@ -2,6 +2,7 @@ package server import ( "errors" + "syscall" "fmt" "html/template" "net/http" @@ -91,12 +92,18 @@ 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 @@ -106,6 +113,9 @@ func (s *Server) errorHandler(err error, ctx echo.Context) { 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() } }