Skip to content

fix: Sentry event page display bugs from issue #321#281

Merged
butschster merged 2 commits into
masterfrom
fix/sentry-page-display-bugs
May 13, 2026
Merged

fix: Sentry event page display bugs from issue #321#281
butschster merged 2 commits into
masterfrom
fix/sentry-page-display-bugs

Conversation

@butschster
Copy link
Copy Markdown
Member

What

Fixes the Sentry-specific UI issues reported in buggregator/server#321 — empty context boxes, vars that wouldn't expand, a 404 from the trace context link, the year-1970 timestamp, and the sidebar dot disappearing when count badges are off.

Why

The reporter walked through several Sentry events captured by the v2 server and surfaced five distinct rendering bugs on the event page plus a sidebar regression. The server-side companion is buggregator/server#335.

How

  • Trace context 404trace-context-block.vue now hides the "View full trace" link unless the summary has actual span data. Plain error events with a contexts.trace.trace_id no longer point at a route that 404's against /api/sentry/traces/{traceId}.
  • Vars-only frame expansionsentry-exception-frame.vue no longer treats empty pre_context/post_context arrays as a body. Frames that carry only vars (no source lines) now render a <dl> fallback so expanding the chevron shows the variables instead of nothing.
  • Empty Runtime/OS/SDK boxessentry-page-tags.vue filters empty context boxes and blank tag pills rather than rendering placeholders.
  • Timestamp year-1970sentry-page.vue formats the Sentry payload timestamp through moment.unix() when it's a numeric epoch (was being parsed as milliseconds).
  • Sidebar dotlayout-sidebar.vue decouples the colored dot indicator from isVisibleEventCounts; turning numeric counts off no longer hides the at-a-glance "events exist" signal.

Testing

Manual verification via new Storybook stories:

  • Entities/Sentry/TraceContextBlockErrorOnlyNoTransaction
  • Entities/Sentry/SentryExceptionFrameVarsOnlyNoSource, Bare
  • Entities/Sentry/SentryPageTagsMinimalNoContexts, EnvAndLoggerOnly
  • Entities/Sentry/SentryPagePageMinimalErrorNoTrace (exercises timestamp, trace link, and empty contexts together)

yarn lint and yarn typecheck clean (no new warnings).

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 12, 2026

📸 Storybook Screenshots

Screenshots for 21 changed components in this PR.

Entities/Sentry/SentryExceptionFrame

Frame

Entities/Sentry/SentryExceptionFrame / Frame

Vars Only No Source

Entities/Sentry/SentryExceptionFrame / Vars Only No Source

Bare

Entities/Sentry/SentryExceptionFrame / Bare

Entities/Sentry/SentryPageTags

Laravel

Entities/Sentry/SentryPageTags / Laravel

Spiral

Entities/Sentry/SentryPageTags / Spiral

Minimal No Contexts

Entities/Sentry/SentryPageTags / Minimal No Contexts

Env And Logger Only

Entities/Sentry/SentryPageTags / Env And Logger Only

Entities/Sentry/SentryPage

Page Common

Entities/Sentry/SentryPage / Page Common

Page Event

Entities/Sentry/SentryPage / Page Event

Page Laravel

Entities/Sentry/SentryPage / Page Laravel

Page Spiral

Entities/Sentry/SentryPage / Page Spiral

Page JS

Entities/Sentry/SentryPage / Page JS

Page JS Message

Entities/Sentry/SentryPage / Page JS Message

Page Python

Entities/Sentry/SentryPage / Page Python

Page Python Log

Entities/Sentry/SentryPage / Page Python Log

Page Minimal Error No Trace

Entities/Sentry/SentryPage / Page Minimal Error No Trace

Entities/Sentry/TraceContextBlock

Default

Entities/Sentry/TraceContextBlock / Default

No Spans

Entities/Sentry/TraceContextBlock / No Spans

Error Only No Transaction

Entities/Sentry/TraceContextBlock / Error Only No Transaction

Widgets/LayoutSidebar

Collapsed

Widgets/LayoutSidebar / Collapsed

Expanded

Widgets/LayoutSidebar / Expanded


Auto-generated from Storybook stories of changed .vue files

Trace context no longer renders a 'View full trace' link when no
transaction was captured (which 404'd against /api/sentry/traces/{id}).
Stack-frame chevrons that animate with no source context now render
the frame's vars as a fallback list instead of an empty body. Empty
Runtime/OS/SDK context boxes and blank tag pills are hidden rather
than shown as empty placeholders. The event page header now formats
the Sentry timestamp as epoch seconds (was rendering year 1970). The
sidebar dot indicator no longer depends on the event-count visibility
setting.
@butschster butschster force-pushed the fix/sentry-page-display-bugs branch from f7d58b3 to db33095 Compare May 13, 2026 04:22
…ction exists

The trace context block was rendered with a synthetic summary that had
zero spans, so the link-visibility guard hid 'View full trace' even when
a transaction was captured for that trace_id. Fetch /api/sentry/traces/
{traceId} on mount: populate the real span_count / duration_ms / preview
spans when present (link renders), keep the synthetic minimal summary on
404 (link stays hidden, no broken navigation).
@butschster butschster merged commit 3c5c442 into master May 13, 2026
2 checks passed
@butschster butschster deleted the fix/sentry-page-display-bugs branch May 13, 2026 05:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working module:sentry

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant