Summary
When the OAuth token in ~/.claude/.credentials.json is expired and cannot be renewed, the widget renders both bars completely empty with a ! indicator and gives no further information. There is no message, no tooltip, and no log file anywhere, so an auth failure is indistinguishable from a network failure or an unexpected API response.
Environment
- v1.4.9 (latest at time of writing)
- Windows 11
What happened
The widget worked normally, then stopped and showed empty bars with !. Diagnosing this took a long session of elimination, because none of these produced any signal from the app:
- Process was alive and responsive;
settings.json was written correctly on UI interaction
~/.claude/.credentials.json was present, so a simple existence check looked fine
- No proxy configured; TCP to
api.anthropic.com:443 succeeded
- Nothing in the Windows Application event log
%APPDATA%\ClaudeCodeUsageMonitor\ contained only settings.json — no log file of any kind
The actual cause: the token in that file had expired, and the Claude Code CLI was not installed on the machine, so nothing could renew it. I use only the Claude desktop app, which keeps its own credential store and leaves .credentials.json stale.
Notably, I initially misattributed this to #56 and posted an incorrect report there, purely because the app gave me nothing to go on. A different monitor on the same machine stated "session expired" outright, which identified the cause in seconds.
Suggestions
- Write a log file, or add a
--verbose / debug toggle. This was the single biggest obstacle — there was nothing to inspect or attach to a report.
- Surface the error on the
! indicator (tooltip or popup), distinguishing at minimum: not authenticated / token expired, network or endpoint error, and unexpected response format.
- Document in the README that the desktop app alone does not populate
.credentials.json, and that the Claude Code CLI is required — both to create the file and to renew the token. This is easy to get wrong, since the file can exist and still be unusable.
Thanks for the tool — the taskbar bars are genuinely the nicest presentation I've found for this.
Summary
When the OAuth token in
~/.claude/.credentials.jsonis expired and cannot be renewed, the widget renders both bars completely empty with a!indicator and gives no further information. There is no message, no tooltip, and no log file anywhere, so an auth failure is indistinguishable from a network failure or an unexpected API response.Environment
What happened
The widget worked normally, then stopped and showed empty bars with
!. Diagnosing this took a long session of elimination, because none of these produced any signal from the app:settings.jsonwas written correctly on UI interaction~/.claude/.credentials.jsonwas present, so a simple existence check looked fineapi.anthropic.com:443succeeded%APPDATA%\ClaudeCodeUsageMonitor\contained onlysettings.json— no log file of any kindThe actual cause: the token in that file had expired, and the Claude Code CLI was not installed on the machine, so nothing could renew it. I use only the Claude desktop app, which keeps its own credential store and leaves
.credentials.jsonstale.Notably, I initially misattributed this to #56 and posted an incorrect report there, purely because the app gave me nothing to go on. A different monitor on the same machine stated "session expired" outright, which identified the cause in seconds.
Suggestions
--verbose/ debug toggle. This was the single biggest obstacle — there was nothing to inspect or attach to a report.!indicator (tooltip or popup), distinguishing at minimum: not authenticated / token expired, network or endpoint error, and unexpected response format..credentials.json, and that the Claude Code CLI is required — both to create the file and to renew the token. This is easy to get wrong, since the file can exist and still be unusable.Thanks for the tool — the taskbar bars are genuinely the nicest presentation I've found for this.