Skip to content

Credits vanishing without transaction records — $516 lost across two events #229

@kineticSum

Description

@kineticSum

Credits vanishing without transaction records — $516 lost across two events

Summary

Our autonomous agent (Darrow) has experienced two confirmed incidents where the credit balance was reset to zero without any corresponding transaction in the /v1/credits/history ledger. The balance simply drops between two consecutive inference charges with no deduction record. Total confirmed losses: $516.12.

Background

Darrow is an autonomous agent running on Conway Cloud (sandbox 9e5657aa841b4af4301c4cdec1ada0f5). His wallet private key was accidentally leaked in a public git commit. To protect the agent, we provisioned a new wallet and transferred operations to it:

  • New wallet address: 0xe54a08a6b9a6DD88162e194ef85a6d53eCdAe92e
  • Original operational address (provisioned by Conway): 0x42Cb145c7c468dA7f2BcbA511D052b0e6a2e4c84
  • Operational account user_id: 3322eefe-c7f7-4e19-9658-0d3d56298e93
  • Wallet account user_id: 5e193fe7-88f4-483e-86f0-577d51dc9c53

We discovered that x402 payments credit the signing wallet's Conway account (user 5e193fe7), not the operational account (user 3322eefe) that is charged for inference. To fix this, we transferred credits from the wallet account to the operational account using POST /v1/credits/transfer. The transfers completed successfully and are recorded in both accounts' transaction histories.

Shortly after each transfer, the operational account's balance was wiped to zero with no transaction record.

Confirmed Phantom Event 1 — $362.88 lost

Time: 2026-02-25, between 07:30:53 and 07:30:58 UTC

Transaction ID Timestamp Amount Balance After Type
0365b3ec-c8cf-494b-ba24-541e53abea69 07:30:53.934 -4c $362.88 (36,288c) inference
5bb29ac2-8f1e-49d8-9457-dc1b9c870cfb 07:30:58.126 -4c -$0.04 (-4c) inference

These are consecutive transactions in the /v1/credits/history API — there is nothing between them. The -4c charge at 07:30:58 should have left a balance of $362.84, not -$0.04. The entire $362.88 balance was wiped in 5 seconds.

Confirmed Phantom Event 2 — $153.24 lost

Time: 2026-02-25, between 21:13:28 and 21:13:44 UTC

Transaction ID Timestamp Amount Balance After Type
d2e85071-bc46-40d3-8f14-6692e800e9d2 21:13:28.814 -12c $153.24 (15,324c) inference
f8c084bc-3068-4f73-9aa9-d91d551fdadb 21:13:44.484 -12c -$0.12 (-12c) inference

Again, consecutive transactions with no entries between them. The -12c charge should have left $153.12, not -$0.12. The entire $153.24 balance was wiped in 16 seconds.

Verification performed

  1. All 20,140 transactions in the operational account's history were scanned. Every entry is type inference, transfer_in, topup, vm_creation, or refund. There are no transfer_out, adjustment, debit, or other entries that could explain the deductions.

  2. The wallet account (5e193fe7) has a balance of $0.00 and its history shows only topups and the two transfer_out entries to the operational account. It did not receive the missing credits back.

  3. The per-call inference charges are correct — each is $0.03-$0.12 depending on token count. The total of all recorded inference charges post-transfer sums to ~$47, consistent with normal gpt-5.2 usage over ~3 hours.

  4. Both events follow the same pattern: the balance_after_cents field resets to approximately zero between two adjacent inference transactions, with no transaction record for the deduction. This is consistent with a direct database balance update (e.g., UPDATE users SET credits_cents = ...) that bypasses the transaction ledger.

  5. Both events occurred during active inference usage — gpt-5.2 calls happening every few seconds. This may point to a race condition in the balance calculation during concurrent inference + transfer operations.

Suspected root cause

We believe the credit transfer (POST /v1/credits/transfer) may trigger a balance recalculation or cache invalidation that races with concurrent inference charges, causing the balance to be overwritten with a stale or zeroed value. Both phantom events occurred after credits were transferred into the operational account, while inference calls were actively running.

Request

Please investigate and restore the $516.12 in lost credits to account 3322eefe-c7f7-4e19-9658-0d3d56298e93 (address 0x42Cb145c7c468dA7f2BcbA511D052b0e6a2e4c84).

Account details

  • Operational account: user_id 3322eefe-c7f7-4e19-9658-0d3d56298e93, address 0x42Cb145c7c468dA7f2BcbA511D052b0e6a2e4c84
  • Wallet account: user_id 5e193fe7-88f4-483e-86f0-577d51dc9c53, address 0xe54a08a6b9a6DD88162e194ef85a6d53eCdAe92e
  • Sandbox: 9e5657aa841b4af4301c4cdec1ada0f5 (darrow-v2)
  • Agent: Darrow — autonomous economic agent

Happy to provide any additional data, API responses, or transaction dumps needed for the investigation.

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