registry/internal/api/handlers/v0/list_errors.go
CK ef29673221
fix: client-cancelled GET /v0/servers returns 499 without error log (#1335)
Maps context.Canceled from ListServers to 499 and skips the error-level log on client disconnect.

Merged as-is per maintainer decision; known follow-up tracked in #1337 (500-path error-detail leak + WriteHeader claim correction + nits).
2026-06-05 02:59:47 -04:00

21 lines
537 B
Go

package v0
import (
"context"
"errors"
"log"
"github.com/danielgtaylor/huma/v2"
)
// ListServersError maps ListServers failures; client disconnects must not log as 500s.
func ListServersError(ctx context.Context, err error) error {
if err == nil {
return nil
}
if errors.Is(err, context.Canceled) || errors.Is(ctx.Err(), context.Canceled) {
return huma.NewError(499, "Client closed request", err)
}
log.Printf("list servers failed: %v", err)
return huma.Error500InternalServerError("Failed to get registry list", err)
}