From 46760d3f77b40a19d9df68ad36ea824fb995b6ee Mon Sep 17 00:00:00 2001 From: chaosinthecrd Date: Fri, 27 Jun 2025 22:43:24 +0100 Subject: [PATCH] k8s-operator: adding more detail to error response Signed-off-by: chaosinthecrd --- sessionrecording/connect.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sessionrecording/connect.go b/sessionrecording/connect.go index dc697d071..050ef7d57 100644 --- a/sessionrecording/connect.go +++ b/sessionrecording/connect.go @@ -6,6 +6,7 @@ package sessionrecording import ( + "bytes" "context" "crypto/tls" "encoding/json" @@ -207,12 +208,16 @@ func connectV2(ctx context.Context, hc *http.Client, ap netip.AddrPort) (io.Writ defer close(acks) defer resp.Body.Close() defer pw.Close() - dec := json.NewDecoder(resp.Body) + + var bodyBuffer bytes.Buffer + teeReader := io.TeeReader(resp.Body, &bodyBuffer) + dec := json.NewDecoder(teeReader) + for { var frame v2ResponseFrame if err := dec.Decode(&frame); err != nil { if !errors.Is(err, io.EOF) { - errChan <- fmt.Errorf("recording: unexpected error receiving acks: %w", err) + errChan <- fmt.Errorf("recording: unexpected error receiving acks: unable to decode body %q: %w", bodyBuffer.String(), err) } return }