Skip to content

Troubleshooting Guide

The redacted application log is the first stop: %LOCALAPPDATA%\ClaudeOrgUsageMonitor\logs\claude_monitor.log (raise verbosity via Settings → Data & Backup → Logging level → DEBUG).

Connection & keys

“We're on the Team plan and there is no Analytics API key to create.” Correct — that key does not exist on the Team plan (the Analytics API is Enterprise-only per the official Anthropic documentation, and the Admin / Claude Code Analytics APIs belong to Claude Console organizations). This is Anthropic's plan design, not a fault. Set Settings → API Connections → Organization plan to Claude Team plan and import the official exports instead: the Claude Code analytics export (claude.ai/analytics/claude-code → Export all users) and the spend report from your analytics settings, via Sync & Audit → Official export imports. See the API Key Setup guide.

Symptom Cause & fix
Authentication failed (401) on Test connection Key mistyped/revoked, or the wrong key type for the endpoint (Analytics vs Admin keys are not interchangeable). Re-create the key in the right console and paste it again — see API_KEY_SETUP.md.
Permission denied (403) The key is valid but the plan/scope doesn't include that endpoint (e.g. Claude Code Analytics on a workspace-scoped key). Use an org-level Admin key / Analytics key with read:analytics.
Endpoint not available (404) on some categories Normal: that data category isn't offered on your plan. It is labeled Unavailable, excluded from scoring, and can be covered by official CSV imports.
Rate limit exceeded (429) persists The Enterprise Analytics API allows 60 req/min org-wide, shared with any other tooling. The client already throttles and honors Retry-After — schedule syncs when other consumers are idle, or ask Anthropic to raise the limit.
Network failure / timeout Check proxy/firewall allows api.anthropic.com:443. TLS interception with a private CA will fail verification — install the CA into the Windows trust store; never disable TLS verification.
No API key configured when pressing Sync Add a key in Settings → API Connections (demo mode intentionally has no sync).

Data looks wrong

Symptom Cause & fix
Yesterday/today missing Official data lags (~1 day engagement, ≤24 h usage/cost). The sync stops cleanly at the newest aggregated day and the freshness date shows how far data goes.
Numbers changed since last week Anthropic revises recent days; the lookback re-fetch (default 7 days) picks revisions up. For invoice-grade cost, prefer periods ≥30 days old.
User shows No Data but should have usage Check Settings → API Connections: is the category serving that product Available? If it's plan-limited, import the official export for it. No Data means "no reliable source", never zero.
Everyone at 0% after enabling a new metric The metric's product has no available source for the period, or targets are unrealistic. Check the user drill-down: each metric row shows applicable/why-not, effective target and actual.
Chat totals differ from the claude.ai dashboard Compare identical UTC date ranges and remember distinct counts are approximations (<2% typical). The report footer records data source and freshness for audit.
Import shows "skipped (API data)" Working as designed: official API data outranks file imports for the same user/day/metric, so re-importing can't corrupt synced data.
Seat count says "derived from active members" Your sources don't report assigned_seat_count; the app derives seats from active directory members and labels the source.

Alerts

Symptom Cause & fix
Expected alert missing Check: alerts enabled? user exempt (see the Exemption column / reason)? inside the new-user grace period? suppression window (default 7 days) still active? already recorded for this period? The evaluation tab shows the exact reason per user.
Alert for someone on leave Add an exemption (exact email) with an expiration date — it auto-returns to evaluation afterwards.
No Windows toast notifications Windows Focus Assist / notification settings can suppress tray balloons; the in-app Alerts page always shows everything regardless.
Email test fails SMTP: verify host/port/security mode and that the password was saved (Credential Manager). Graph: tenant/client IDs, client secret saved, Mail.Send application permission with admin consent, and a real sender mailbox. The error dialog carries the exact reason (redacted).

Sync & database

Symptom Cause & fix
Sync says partial Some categories succeeded, others failed — open the run (double-click in Sync history) for per-category reasons. Successful categories kept their data; retry after fixing the cause.
Sync appears stuck Large initial syncs are throttled (~1.1 s/request on the Analytics key). Progress shows the current category; Cancel stops cleanly after the current request and keeps everything already ingested.
a synchronization is already running One sync at a time (including scheduled ones). Wait or cancel the running one.
Database locked / corrupt after a crash WAL mode makes this rare. Run Settings → Data & Backup → Back up database now; if the app won't start, restore the latest backup (the previous DB is kept as *.pre_restore).
Restore refuses a file Restores validate SQLite header + integrity and, for .enc backups, require the same Windows user/machine credential-store key. Use a plain backup from the same install, or the documented BitLocker path for machine moves.

UI & installation

Symptom Cause & fix
App does not start at all Re-download and reinstall from the Download page (a partial download is the usual cause — check the SHA-256). If it still fails, send %LOCALAPPDATA%\ClaudeOrgUsageMonitor\logs\claude_monitor.log to your IT administrator.
Blank/garbled window over RDP Force software rendering: set environment variable QT_OPENGL=software before launching.
SmartScreen warning on the installer The installer is unsigned by default. Verify the file hash you built, then "More info → Run anyway", or sign it with your org certificate.
High-DPI text too small/large Windows display scaling is honored by Qt; per-monitor overrides: right-click the exe → Properties → Compatibility → High DPI settings.
Keyring errors on locked-down machines If the Credential Manager is disabled by policy, the app falls back to a labeled reduced-security store; prefer enabling the Credential Manager service.

Demo mode

Demo mode uses a separate data directory (…\ClaudeOrgUsageMonitor\demo) and an in-memory secret store; it never contacts the network and Sync is disabled by design. Delete the demo folder to regenerate fresh demo data.

Still stuck?

Collect: the log file, the sync run detail (Sync & Audit), and the capability table (Settings → API Connections) — these three answer most questions without exposing any secrets.