Skip to content

[Bug][Mobile] Usage fails on mobile although desktop returns usage data #9329

Description

@cachetronaut

Description

The iOS mobile Usage screen fails to report usage for the neo environment, even though the desktop Usage screen returns real usage data for the same T3 Code setup.

The screenshots use different periods. Desktop shows 30 days, Aug 4 to Sep 2. Mobile shows 7 days, Aug 27 to Sep 2. The desktop screenshot is evidence that usage data exists. It is not a direct same-period numeric comparison.

Actual behavior

Desktop:

  • The Usage screen loads successfully for Aug 4 to Sep 2.
  • It shows $643.11 and 64 sessions.
  • It shows 1.29B processed tokens.
  • It shows $4,027.51 in cache savings.

Mobile:

  • The 7 days view shows neo could not report usage.
  • The chart shows No activity in this window.
  • Raw token cost shows $0.00.
  • Processed tokens shows 0.
  • The screen does not clearly distinguish unavailable usage from genuine zero activity.
  • The screen does not provide a clear retry action.

Expected behavior

  • Mobile should load usage for the selected period when the data source is available.
  • If neo cannot report, show it as unavailable instead of presenting zero totals as confirmed data.
  • If another environment reports successfully, show its partial totals and identify neo as unavailable.
  • If all environments fail, show a clear error state with a retry action.
  • Keep the selected period unchanged while the app reports the error or retry state.

Steps to reproduce

  1. Use a T3 Code setup with recent agent activity.
  2. Open Usage on desktop and confirm that usage data appears.
  3. Open the same setup in the iOS mobile app.
  4. Open Usage.
  5. Select 7 days.
  6. Observe neo could not report usage, $0.00, 0 processed tokens, and No activity in this window.
  7. For an exact comparison, select the same 7 days period on desktop.

Environment

  • Device: iPhone
  • App: T3 Code mobile
  • App version/build: not visible in the screenshots
  • Server or nightly build: not captured
  • Connection type: not captured

Acceptance criteria

  • Failed environments reach a visible error or timeout state.
  • Reachable environments still contribute usage totals.
  • All-failed states include a retry action.
  • Failed usage requests are not shown as confirmed zero usage.
  • The mobile result is consistent with the desktop result when both clients use the same period and connected environments.

Related reports and changes

This report is narrower than the linked items. The mobile screen reaches an error and empty state while desktop returns usage data.

Activity

  1. directfilm commented on Sep 4, 2026

    @directfilm

    Confirming this independently — same symptom, different setup.

    iOS app 1.0.3, against T3 Code Nightly 0.0.39-nightly.20260904.1274 on macOS 26.6.2. Opening Usage on the phone, on the 30-day window, gives:

    • -- MacBook Pro could not report usage.
    • Raw token cost $0.00*
    • "No activity in this window"
    • Totals all zero: 0 processed tokens, 0 cached input, 0 uncached input, $0.00 cache savings

    This isn't a case of there genuinely being nothing to report. The scan cache on that same machine (~/.t3/userdata/usage-scan-cache.json, version 3) currently holds 242 sessions across 2,980 scanned files and 8 models. The data is on disk; mobile just can't get it.

    Worth flagging as a severity point rather than just a cosmetic one: the failure is not presented as a failure. The "could not report usage" notice sits above a fully rendered report showing $0.00 and zeroes everywhere, which reads as a legitimate result — "you used nothing this month" — rather than as an error. Anyone not cross-checking against desktop would take the zeroes at face value. If the environment can't be reached, suppressing the totals block (or greying it out) would be more honest than rendering zeros into it.

  2. KoningSanderPander commented on Sep 5, 2026

    @KoningSanderPander

    Confirming on iOS T3 1.0.3, which reports "Up to date", connected to two environments. Desktop usage works, but mobile shows “could not report usage” for both environments across every time window. Cost and token totals remain zero.

    Reproduced a compatibility failure using a captured server response and the usage schema from the 1.0.3 release:

    Expected "claude" | "codex"
      at ["sources"][2]["fingerprint"]["provider"]
    

    The newer server returns usage contract v5 and includes a grok source even when Grok is unused. The older mobile schema rejects the entire response before the version-handling logic can run.

    As a control, filtering out unsupported providers and returning contract v4 makes the same captured response decode successfully. Changing the version number alone still fails.

    This points to a backward-compatibility regression. The zero totals shown after failure are misleading because the servers have valid usage data.

  3. juliusmarminge commented on Sep 26, 2026

    @juliusmarminge
    Member

    Fixed by #10076 — usage buckets/sources now use ForwardCompatibleArray so unfamiliar provider variants (e.g. grok in sources) are skipped instead of rejecting the whole summary. Update the client to pick this up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions