OpenClaw Usage Shows Unknown: How One Interrupted Turn Affects a Report
Trace unknown token and cost totals in OpenClaw, check stable versus beta behavior, preserve transcript evidence, and distinguish measured subtotals from complete billing.

If OpenClaw's Usage page suddenly shows unknown for tokens and cost, with the day's charts missing, record the version, selected date range, and affected session first. In older reporting paths, one streamed response missing its final usage can affect the whole range's presentation. The other requests' records may still exist.
Unknown usage is not measured zero. Whether the client received complete accounting and whether the model service processed or charged the request require separate checks. Preserve the records and narrow the report before changing stored data.
This article was checked on November 10, 2026. GitHub's latest stable release was v2026.11.2; the measured-only reporting change was present in the separate v2026.11.5-beta.1 release line. We compared tagged public source, without running a full OpenClaw instance or interrupting a live model request.
Identify which usage surface you are reading
OpenClaw exposes several kinds of usage. The current official token-use guide distinguishes these entry points:
| Entry point | What it primarily describes |
|---|---|
/usage tokens in chat | Enables token and cache details on subsequent replies |
/usage cost in chat | Local cost records summarized from OpenClaw session logs |
openclaw status --usage in a terminal | Available provider quota windows or account usage status |
| Control UI → Usage | Session and date-based analysis, alongside provider account information that has its own scope |
Reply output tokens, the context-window meter, and remaining subscription allowance also measure different things. A number on one surface does not establish that another is wrong.
For a new installation, use the OpenClaw connection guide to identify the provider and model actually used by the Gateway. The agent token-cost explanation covers why a task can generate several model calls; an unknown report still needs tracing to individual turns.
How an interruption reaches the whole report
Issue #194260 describes Linux, OpenClaw v2026.11.1, and a local llama.cpp compatible endpoint. The reporter interrupted a request before final usage arrived, observed an unavailable marker in OpenClaw's records, and then saw unknown daily totals with analysis hidden.
This example shows where the OpenClaw state can appear. It is illustrative, not a universal model API response or a real user's transcript:
{
"message": {
"role": "assistant",
"usage": {
"usageReport": { "state": "unavailable" }
}
}
}
Final usage may arrive late in a stream. Receiving some text does not establish complete accounting. The marker distinguishes a missing measurement from a terminal report of zero. Visible reply length and provisional counters cannot reconstruct final cost.
In v2026.11.2's totals implementation, merging propagates the unavailable marker. Its formatters return unknown for that state, and the analysis view gates content on it. Known numeric subtotals can remain underneath that presentation.
This explains a version-specific path. An empty report can also reflect filters, unfinished loading, or absent records. A blank chart alone does not identify the cause.
A closed issue does not identify your fixed release
Issue #194260 was closed when checked. Its only reply came from a bot and explicitly described source inspection without a live reproduction or executed tests. The linked PR #187212 merged on October 29. A later PR comment also reports Unknown totals for historical dates on a stable installation; that observation is separate from checking release contents.
We inspected these tags independently:
| Tag | Relevant behavior found in source |
|---|---|
v2026.11.1 | Propagates unavailable accounting and retains the unknown/hidden-analysis path |
v2026.11.2, stable release published November 8 | Retains the same relevant behavior; the higher version number alone does not establish inclusion of the fix |
v2026.11.5-beta.1, prerelease published November 4 | Excludes unavailable turns from token and cost accounting and removes that unavailable presentation condition |
Those are publication dates, not an ordering inferred from version strings. Compare the stable release and beta release, and check your intended target again before updating.
The reporting tradeoff matters. The beta parser includes measured turns in usage totals; unknown turns can still count as messages and errors. Numeric reports become usable without recovering missing usage. If the provider billed an unknown turn, the client total can understate the provider's charges.
Narrow the problem while preserving evidence
1. Record runtime version and report boundaries
On the machine running OpenClaw:
openclaw --version
openclaw update status --json
The first checks the executable; the second inspects update status. Also identify the Gateway used by the management UI so that a different local installation does not mislead the investigation. Record start and end dates, timezone, agent, and session filters. Match those boundaries when comparing billing records.
These commands inspect version and status rather than updating the instance. They follow the official update guide; we did not execute them against a live OpenClaw installation.
2. Compare a completed session with the affected range
Select a normally completed session with visible usage, then return to the date range containing the interrupted turn. Note whether unknown follows that selection and whether the report is still loading.
If you have authorized access to your own session records, inspect the relevant period locally for usageReport.state = unavailable. Preserve only necessary status and timing evidence for sharing. Keep full conversations, tool results, attachments, and credentials private.
3. Distinguish unknown accounting, measured zero, and missing prices
| Observation | What it establishes | What remains to check |
|---|---|---|
| Complete token and cost records | Known data for that call | Estimated versus reported cost, and matching scope |
| A terminal provider report explicitly says zero | A measured zero for that field | Whether the value was actually reported, rather than initialized |
usageReport.state = unavailable | Accounting is incomplete | Original request status and service records; do not substitute zero |
| Tokens appear but cost does not | Cost information is insufficient | Recorded amounts, applicable model pricing, and version-specific handling |
For calls through Nbility, correlate time, model, and request ID in usage logs, then use the account and billing guide to reconcile records. Client estimates, site credit units, and money paid need their units identified before amounts are compared.
4. Check the update target, then revisit historical dates
Before updating, back up configuration and state and inspect the target through your supported deployment process. You can preview the update plan with:
openclaw update --dry-run
A dry run helps identify the proposed target; it does not verify a specific reporting fix. If you need to evaluate beta, use an isolated environment and a short public task before scheduling an update to a working installation.
PR #187212 changes accounting cache versions so derived reports can rebuild from preserved transcripts. It does not fetch final usage for an old model request. After updating, return to the same historical date range, allow the supported rebuild to finish, and check one new completed turn. A number in a new conversation does not verify recovery of the old range.
Why editing markers or rerunning tasks is insufficient
The issue reporter describes a local result after editing markers and clearing caches. That procedure is not a general recovery recipe: removing unavailable does not obtain missing measurements and can make a report appear more complete than its evidence supports. Deleting derived caches also requires knowledge of the storage version, rebuild behavior, and recovery process.
Rerunning the model task creates another call rather than restoring the old measurement. A task that sends messages, writes files, or creates orders can also repeat those actions. Use bounded retries and backoff after establishing the original request's status.
A useful completion criterion is concrete: identify the runtime and fixed release scope, preserve affected turns, label known subtotals appropriately, and correlate unresolved calls with service records. A restored numeric display still needs its missing-turn boundary understood.


