Repository navigation
Account profile card degrades to "details not available" on a single transient fetch failure (no retry, memory-only cache) #11016
Replies: 1 comment
|
Additional data point from a native WKWebView launcher (macOS 27.0.1, After signing in through the Web UI popup, the WebKit cookie store contains
So the sign-in popup already obtains the clearance; the host process just does not have it. Forwarding that cookie (with expiry/refresh handling), or performing the account reads in the renderer's browser context, would make the profile/balance calls work. At minimum, classifying the
No tokens, keys, or account identifiers are included. |
Uh oh!
There was an error while loading. Please reload this page.
What I see
Official desktop build (Electron app,
0.2.1-rc.3). Settings → Account shows "Signed in to DeepSeek" with the subtitle "Account details are not available yet" (账号资料暂不可用). Balance (¥32.74) renders fine, tasks run fine. About an hour later the profile came back on its own — no restart, no re-login.Why it happens (measured on one machine)
The profile query and the balance query hit different Platform endpoints, and only one of them sits behind an edge challenge:
So the edge can intermittently challenge or block
GET /auth-api/*for non-browser clients. The host's request goes through Node'sfetch;platformClientHeaders()sets fivex-client-*headers but noUser-Agent, so undici sendsnode, andplatformRequest()classifies the resulting 403 asPlatformAuthError('network').I am not asking anyone to defeat the challenge — the interesting part is what the UI does with a failure it cannot avoid.
What I think is worth fixing
packages/client/ui-settings-accountthe status isprofile?.contact ?? (details.profile === undefined ? 'loading' : 'profileUnavailable'), so{ status: 'failed' }andcontact: nullboth read as "Account details are not available yet", with no retry affordance. A distinct failure state ("couldn't load details — balance is unaffected") plus a retry button would make the card self-explanatory.lastProfileis memory-only, so every launch starts with an empty cache and the card shows the placeholder until the first successful fetch. The code already binds the cache to the grant token; persisting it (still token-bound) would remove the "looks broken after every launch" case.User-Agent(or whether Platform can exempt the DSH client from the challenge). I would rather report the behaviour than suggest working around the WAF.Environment
LAX53-P5, DSH0.2.1-rc.3(desktop), password login valid, balance endpoint healthy.curloutside the app.All reactions