Skip to content

fix(chat): stop reporting an empty transcript to Bugsnag - #1430

Merged
bmc08gt merged 1 commit into
code/cashfrom
fix/chat-empty-transcript-report-noise
Sep 8, 2026
Merged

fix(chat): stop reporting an empty transcript to Bugsnag#1430
bmc08gt merged 1 commit into
code/cashfrom
fix/chat-empty-transcript-report-noise

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Opening a chat nobody has written in yet returns GetMessages NOT_FOUND. ChatMessagingService turns that into GetMessagesError.NotFound, and InternalChatMessagingRepository pipes every failure through ErrorUtils.handleError, so a normal empty conversation opens a Bugsnag error group. One group has 72 events from a single user on 2026.8.5. Its breadcrumbs show the shape plainly: navigate into Conversation, four successful RPCs, then the error — twice in eight seconds, on two different chats.

NotFound was already excluded from NotifiableError, but that only downgrades severity to INFO. The event is still sent, so it still opens a group. There was no tier for "expected result, don't report at all".

Change

  • UnreportedError in libs/logging — a third tier below NotifiableError (reported, WARNING, drives the Slack filter) and a plain CodeServerError (reported, INFO, recorded for reference).
  • ErrorUtils.shouldReport(throwable, cause) gates the reporter loop and folds in the existing ignoredErrors check. Marked errors still reach Timber.e, so they stay in the App Logs tail attached to real reports; they just never reach a reporter.
  • GetMessagesError.NotFound implements it.

Scope

The sibling results are the same shape of noise — GetMessageError.NotFound, GetDmChatFeedError.NotFound, and the various Denied cases. I left them alone rather than widen this on my own read; say the word and they can follow.

This stops new events. The 72 already filed need the group resolved in Bugsnag once a build carrying this ships.

@bmc08gt bmc08gt self-assigned this Sep 8, 2026
@github-actions github-actions Bot added area: network gRPC, connectivity, API, exchange rates type: fix Bug fix labels Sep 8, 2026
Opening a chat nobody has written in yet returns GetMessages NOT_FOUND, which
InternalChatMessagingRepository hands to ErrorUtils.handleError. Every reporter
sees it, so a normal empty conversation opens a Bugsnag error group — 72 events
from one user on 2026.8.5.

The notifiability tiers had no way to say "expected, don't report": a plain
CodeServerError is still sent, just downgraded to INFO. Add UnreportedError as a
third tier below that. Errors marked with it are still logged, so they stay in
the trace attached to a real report, but ErrorUtils does not hand them to the
reporters. GetMessagesError.NotFound is the first user; the sibling NotFound
results are candidates but are left alone here.
@bmc08gt
bmc08gt force-pushed the fix/chat-empty-transcript-report-noise branch from 8fd4040 to 1b0bdc7 Compare September 8, 2026 18:01
@bmc08gt
bmc08gt merged commit 0a9151a into code/cash Sep 8, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: network gRPC, connectivity, API, exchange rates type: fix Bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant