Skip to content

ref(alerts): remove dead standalone SystemAlerts mount#115222

Open
evanpurkhiser wants to merge 1 commit intomasterfrom
evanpurkhiser/ref-alerts-remove-dead-standalone-systemalerts-mount
Open

ref(alerts): remove dead standalone SystemAlerts mount#115222
evanpurkhiser wants to merge 1 commit intomasterfrom
evanpurkhiser/ref-alerts-remove-dead-standalone-systemalerts-mount

Conversation

@evanpurkhiser
Copy link
Copy Markdown
Member

The standalone <SystemAlerts> mount at #blk_alerts (rendered as a separate React tree on every page that extends layout.html) has been dead plumbing since the React+Reflux era began in 2015.

Verified across the full git history (git log -S for AlertStore.addAlert, AlertActions.addAlert, addAlert in *.html, SentryApp.AlertStore, Sentry.AlertActions, etc.) — no Django template, plugin, or external code has ever pushed alerts via this mount. Every AlertStore producer lives inside the SPA's <App> tree, which renders its own <SystemAlerts> via appBodyContent.tsx / organizationLayout/index.tsx. Django flash messages render server-side via the {% if messages %} block in this same template, never through React.

The matching frontend cleanup (removing SYSTEM_ALERTS from processInitQueue's COMPONENT_MAP and the SentryInitRenderReactComponent enum, plus the corresponding test) ships as a separate PR per the frontend/backend split rule. Either PR can land first — the frontend gracefully skips unknown component names via Object.hasOwn(COMPONENT_MAP, ...).

The <Indicators> standalone mount is intentionally preserved — it is genuinely live and needed by the Setup Wizard flow (a non-SPA page that calls addErrorMessage from wizardProjectSelection.tsx).

The standalone <SystemAlerts> mount at #blk_alerts has been dead plumbing
since at least 2015. No code path — Django template, plugin, or otherwise —
ever pushed alerts that surfaced via this mount; all AlertStore producers
live inside the SPA's <App> tree, which renders its own <SystemAlerts>.
Django flash messages render server-side via the {% if messages %} block
in this same template, never through React.

The corresponding frontend cleanup (removing SYSTEM_ALERTS from the init
queue) ships separately.
@evanpurkhiser evanpurkhiser requested a review from a team as a code owner May 8, 2026 19:58
@github-actions github-actions Bot added the Scope: Backend Automatically applied to PRs that change backend components label May 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant