#727·open-saas

Concurrent credit requests can overspend balance and create multiple outputs

Author: jz-kronoCreated Sep 17, 2026Updated Sep 17, 2026

We reproduced a concurrency issue while benchmarking OpenSaaS with Kronowave Factory.

With an authenticated account set to 1 credit, we dispatched 2 generation requests concurrently while holding the provider response.

Observed result: HTTP responses: 200, 200 Provider requests: 2 Final credit balance: -1 New owned outputs: 2

The expected behavior was one successful request, one provider invocation, no negative balance, and one output.

We also tested the 2-credit case, which behaved correctly: two requests completed and the balance reached zero.

We repaired the flow by reserving credits atomically before provider work, ran a fresh F0–F3 baseline, and the concurrency checks passed afterward.

We have exact source identity, reproduction traces, database observations, and the repair diff if useful.