Skip to content

Commit 47ea4b2

Browse files
Other: Add sentry reports for event processing failures
1 parent 00059e6 commit 47ea4b2

File tree

1 file changed

+37
-2
lines changed

1 file changed

+37
-2
lines changed

internal/user/events.go

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,16 +153,31 @@ func (user *User) handleAddressEvents(ctx context.Context, addressEvents []proto
153153
switch event.Action {
154154
case proton.EventCreate:
155155
if err := user.handleCreateAddressEvent(ctx, event); err != nil {
156+
if rerr := user.reporter.ReportMessageWithContext("Failed to apply address create event", reporter.Context{
157+
"error": err,
158+
}); rerr != nil {
159+
user.log.WithError(err).Error("Failed to report address create event error")
160+
}
156161
return fmt.Errorf("failed to handle create address event: %w", err)
157162
}
158163

159164
case proton.EventUpdate, proton.EventUpdateFlags:
160165
if err := user.handleUpdateAddressEvent(ctx, event); err != nil {
166+
if rerr := user.reporter.ReportMessageWithContext("Failed to apply address update event", reporter.Context{
167+
"error": err,
168+
}); rerr != nil {
169+
user.log.WithError(err).Error("Failed to report address update event error")
170+
}
161171
return fmt.Errorf("failed to handle update address event: %w", err)
162172
}
163173

164174
case proton.EventDelete:
165175
if err := user.handleDeleteAddressEvent(ctx, event); err != nil {
176+
if rerr := user.reporter.ReportMessageWithContext("Failed to apply address delete event", reporter.Context{
177+
"error": err,
178+
}); rerr != nil {
179+
user.log.WithError(err).Error("Failed to report address delete event error")
180+
}
166181
return fmt.Errorf("failed to delete address: %w", err)
167182
}
168183
}
@@ -370,7 +385,7 @@ func (user *User) handleDeleteLabelEvent(_ context.Context, event proton.LabelEv
370385
}
371386

372387
// handleMessageEvents handles the given message events.
373-
func (user *User) handleMessageEvents(ctx context.Context, messageEvents []proton.MessageEvent) error {
388+
func (user *User) handleMessageEvents(ctx context.Context, messageEvents []proton.MessageEvent) error { //nolint:funlen
374389
for _, event := range messageEvents {
375390
ctx = logging.WithLogrusField(ctx, "messageID", event.ID)
376391

@@ -380,6 +395,11 @@ func (user *User) handleMessageEvents(ctx context.Context, messageEvents []proto
380395
logging.WithLogrusField(ctx, "action", "create message"),
381396
event,
382397
); err != nil {
398+
if rerr := user.reporter.ReportMessageWithContext("Failed to apply create message event", reporter.Context{
399+
"error": err,
400+
}); rerr != nil {
401+
user.log.WithError(err).Error("Failed to report create message event error")
402+
}
383403
return fmt.Errorf("failed to handle create message event: %w", err)
384404
}
385405

@@ -390,6 +410,11 @@ func (user *User) handleMessageEvents(ctx context.Context, messageEvents []proto
390410
logging.WithLogrusField(ctx, "action", "update draft"),
391411
event,
392412
); err != nil {
413+
if rerr := user.reporter.ReportMessageWithContext("Failed to apply update draft message event", reporter.Context{
414+
"error": err,
415+
}); rerr != nil {
416+
user.log.WithError(err).Error("Failed to report update draft message event error")
417+
}
393418
return fmt.Errorf("failed to handle update draft event: %w", err)
394419
}
395420

@@ -404,6 +429,11 @@ func (user *User) handleMessageEvents(ctx context.Context, messageEvents []proto
404429
logging.WithLogrusField(ctx, "action", "update message"),
405430
event,
406431
); err != nil {
432+
if rerr := user.reporter.ReportMessageWithContext("Failed to apply update message event", reporter.Context{
433+
"error": err,
434+
}); rerr != nil {
435+
user.log.WithError(err).Error("Failed to report update message event error")
436+
}
407437
return fmt.Errorf("failed to handle update message event: %w", err)
408438
}
409439

@@ -412,6 +442,11 @@ func (user *User) handleMessageEvents(ctx context.Context, messageEvents []proto
412442
logging.WithLogrusField(ctx, "action", "delete message"),
413443
event,
414444
); err != nil {
445+
if rerr := user.reporter.ReportMessageWithContext("Failed to apply delete message event", reporter.Context{
446+
"error": err,
447+
}); rerr != nil {
448+
user.log.WithError(err).Error("Failed to report delete message event error")
449+
}
415450
return fmt.Errorf("failed to handle delete message event: %w", err)
416451
}
417452
}
@@ -515,7 +550,7 @@ func (user *User) handleUpdateDraftEvent(ctx context.Context, event proton.Messa
515550
user.log.WithError(err).Error("Failed to add failed message ID to vault")
516551
}
517552

518-
if err := user.reporter.ReportMessageWithContext("Failed to build message (event update)", reporter.Context{
553+
if err := user.reporter.ReportMessageWithContext("Failed to build draft message (event update)", reporter.Context{
519554
"messageID": res.messageID,
520555
"error": res.err,
521556
}); err != nil {

0 commit comments

Comments
 (0)