Comfy-Org / Comfy-Org/Comfy-Desktop
93% of sign-in failures are a 30-minute silent timeout, not an error: stop showing an indefinite spinner
- Dominant language
- TypeScript
- Stars
- 458
- Forks
- 59
- Avg merge
- 22h 18m
- Merged PRs (30d)
- 45
Description
When the browser side of a Desktop sign-in goes quiet, Desktop's response is to keep polling silently until the 30-minute code TTL expires, then report a generic failure. For the user that is a half-hour spinner with no explanation and no way to act.
## Evidence
Of all Desktop login-code failures over the last 7 days:
| Time from sign-in start to failure | Failures | Share |
|---|---|---|
| under 10s | 2 | 0.1% |
| 10-60s | 46 | 1.3% |
| 1-5 min | 33 | 0.9% |
| 5-15 min | 6 | 0.2% |
| 15-25 min | 0 | 0.0% |
| **25-33 min (the TTL)** | **3,266** | **93.0%** |
| over 33 min | 160 | 4.6% |
Only 2.3% of failures are genuine fast errors. Everything else is us waiting out the clock. Essentially all of them are a 404 on the exchange, meaning the code was created and never redeemed.
## Why it matters beyond UX
This is also why the 8 August regression was invisible for so long. A failure mode that always takes 30 minutes and always reports the same generic error gives us no signal about which of several very different causes occurred: browser never opened, user walked away, approval declined, redeem 4xx, backend outage.
## Asks
1. Do not present an indefinite spinner. After a short grace period, move to a state that names what we are waiting for ("waiting for you to finish signing in in your browser") with a visible way out (re-open the browser link, copy the URL, cancel and retry).
2. Treat "no redemption after N minutes" as a distinct, reportable outcome rather than folding it into the same generic failure as a hard error. The failure event should distinguish timed-out from errored.
3. Consider a shorter client-side give-up than the full TTL, with an explicit retry, so the user is not blocked for 30 minutes on what is usually an unrecoverable attempt.
## Related
- #1356 introduced the 30-minute TTL that these failures cluster against
- The browser-side half of this is Comfy-Org/ComfyUI_frontend, where a declined approval currently sends no cancel signal at all
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.