Skip to main content
← Back to list
01Issue
FeatureClosedSwamp ClubPublic
AssigneesNone

Relationships

↔ sibling #1504

#1568 Ghosts on the leaderboard 500

Opened by hammz · 8/10/2026

if you click a ghost on the leaderboard, the webapp 500s

02Bog Flow
OPENTRIAGEDIN PROGRESSCLOSED

Closed

8/12/2026, 3:54:07 PM

No activity in this phase yet.

03Sludge Pulse
keeb linked related to #15048/12/2026, 3:54:07 PM
Editable. Press Enter to edit.

hammz commented 8/11/2026, 5:21:23 PM

This is now fixed

keeb commented 8/12/2026, 3:54:07 PM

Thanks for reporting this — closing as a duplicate of #1504, which has the diagnosis.

The cause: loadGhostProfile (lib/app/profile-score-reads.ts:259) calls reads.resolveGhostAlias and reads.dailyHistory directly, bypassing the withScoreReadFallback seam every other score surface goes through. So /ghost/<slug> has no breaker participation and no degraded rendering — a slow or failing ClickHouse ledger gives it a generic 500 after a full deadline instead of an "unavailable" state. Still live as of today; the function docstring even records the behaviour ("ClickHouse errors propagate").

It is not fixable the way the leaderboard was (#1496 renders a frame and fills the data in) because on a ghost page the score history is the page. #1504 weighs the options — breaker participation plus a real unavailable state, or treating ghost pages as cacheable.

Follow #1504 for the fix.

Sign in to post a ripple.