Problem
The poll page shows an infinite loading spinner in two scenarios, with no feedback to the user.
Scenario 1: Railway cold start
When the server has been idle, Railway puts it to sleep. The first request takes several seconds to wake it up. The client shows a spinner but has no timeout, retry, or "still loading" message — it just spins indefinitely until the server responds.
Scenario 2: Creator session expired
When the poll creator's ATProto session has expired, endpoints that require the creator's OAuth session (e.g. response submission) may hang or fail silently.
Note: poll VIEWING uses unauthenticated PDS reads and should NOT be affected by session expiry. If viewing is hanging, it's likely Scenario 1 (cold start) rather than a session issue.
Current behavior
Endless preloader animation on white background. User has no idea what's wrong or whether to wait.
Expected behavior
- Show a "still loading, please wait..." message after 3-5 seconds
- After 10-15 seconds, show a retry button or an error message
- If response submission fails due to expired creator session, show a clear message: "The poll creator needs to re-authorize — responses are temporarily unavailable"
- Never spin indefinitely with no feedback
Related
Problem
The poll page shows an infinite loading spinner in two scenarios, with no feedback to the user.
Scenario 1: Railway cold start
When the server has been idle, Railway puts it to sleep. The first request takes several seconds to wake it up. The client shows a spinner but has no timeout, retry, or "still loading" message — it just spins indefinitely until the server responds.
Scenario 2: Creator session expired
When the poll creator's ATProto session has expired, endpoints that require the creator's OAuth session (e.g. response submission) may hang or fail silently.
Note: poll VIEWING uses unauthenticated PDS reads and should NOT be affected by session expiry. If viewing is hanging, it's likely Scenario 1 (cold start) rather than a session issue.
Current behavior
Endless preloader animation on white background. User has no idea what's wrong or whether to wait.
Expected behavior
Related