From 03a8e7c81acd19c4a9997b3e03d37f0d3a930767 Mon Sep 17 00:00:00 2001 From: Moby von Briesen Date: Mon, 27 Nov 2023 17:19:59 -0500 Subject: [PATCH] satellite/analytics: improve error logging This inserts additional information provided in error messages from Hubspot into the Go error that is eventually logged out. Before, we would see the a generic "sending event failed" log. With this change, we will see more detailed information in the log, such as a list of required fields that were not submitted. Change-Id: I24da0646bca62f459377abe6281403020fb54c49 --- satellite/analytics/hubspot.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/satellite/analytics/hubspot.go b/satellite/analytics/hubspot.go index c2b902332..b80acb37e 100644 --- a/satellite/analytics/hubspot.go +++ b/satellite/analytics/hubspot.go @@ -235,14 +235,19 @@ func (q *HubSpotEvents) handleSingleEvent(ctx context.Context, ev HubSpotEvent) }() if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusNoContent { - var data struct { + type hsError struct { Message string `json:"message"` + In string `json:"in"` + } + var data struct { + Message string `json:"message"` + Errors []hsError `json:"errors"` } err = json.NewDecoder(resp.Body).Decode(&data) if err != nil { return Error.New("decoding response failed: %w", err) } - return Error.New("sending event failed: %s", data.Message) + return Error.New("sending event failed: %s - %v", data.Message, data.Errors) } return err }