DeclinedStudios
← All devlogs

Bug #9: The Mining Rig That Stopped Paying (and Why It Was Always RACK)

Aug 28, 2026· 4 min read ·Games·Projects

Bug report #9 came in on 2026-08-18 through Silicon Pirates' in-game reporter, severity medium: "Occasionally can't transfer (RACK) crypto credits." Multiple mining rigs, and every so often one of them would just… stop. "Accrued (unpaid)" kept climbing, "Next payout" kept counting down and resetting, and "Stored on NAS vault" never moved again. Forever. It survived browser restarts. The player's workaround was to stop mining, switch coin (losing everything accrued), and start again — which worked "until the next failure." They also had a hunch it was worse on the RACK coin.

They were right about all of it. Here's what was actually going on, because it turned out to be three bugs holding hands.

Bug 1: the ratchet

When a payout is due, the rig converts everything it has accrued into storage blocks on your NAS share and asks for that many blocks. The ask was all-or-nothing: if the blocks didn't fit in the remaining space, nothing was written. Fine so far. But the refusal branch then did two bad things — it reset the payout countdown (so the UI looked exactly like a successful payout) and it told nobody. The Inspector's "is there capacity?" check only asked whether the share had a capacity at all, not whether any of it was free, so the panel said "Mining active" the entire time.

Meanwhile the accrued balance kept growing. So next minute, the ask was bigger. Once one payout doesn't fit, no later one ever can. The rig is wedged permanently — even though the share still has free blocks. And once the accrued balance exceeds what the whole share could hold, even completely emptying the share can't save it. That's the "can never be paid out again."

Bug 2: the trigger

Why did it look random per rig? Because the catch-up accrual had no cap. Close the browser for twelve hours, or have an in-game power fault, or an ISP outage, and the whole gap landed as one lump on the first tick back, at full rate. A 12-hour gap on a RACK rig: about 2,285 coins in a single tick, needing ~1,143 blocks — which wedges an empty 100-block share on the spot. Whichever rig happened to sit out an outage long enough for its lump to exceed its free space was the one that died.

And RACK specifically? The coin table divides a fixed dollars-per-hour by seed price, and RACK's seed price is $0.42 against LBC's $100. In block terms, an hour of gap costs RACK ≈ 95 blocks, DNET ≈ 4, LBC under 1. RACK crosses "doesn't fit" hours to days before anything else. The player's hunch was exactly right.

Bug 3: the slow leak

This is the one that meant even careful players would eventually hit it. The credit path rounded up to at least one block on every 60-second payout. The transfer path — moving coins from the vault to your wallet — freed blocks once, based on total coins moved. So an hour of LBC mining wrote about 60 blocks and, when you transferred it, freed 1. Fifty-nine phantom blocks an hour, permanently, on every rig. Shares slowly filled with usage nothing could reclaim, shrinking free space toward the Bug-1 threshold.

The workaround the player found — switch coin — works because switching resets the accrued balance to zero. The next lump is only a minute's worth, it fits, payouts resume. Until the next outage or enough leak re-arms the wedge. Which is precisely "works until the next failure," and precisely why the workaround cost everything mined.

The fix

  • Partial payouts. Bank what fits, hold the rest. The ratchet can't form. Already-wedged saves self-heal on their next due payout — nothing to do.
  • Symmetric block accounting on credit and debit, so the leak stops.
  • It tells you. "NAS share is full" now appears in the Inspector and the Active Services Monitor, and a held payout no longer resets the countdown.
  • Found while fixing: an exact-fill payout was writing its blocks and then skipping the vault credit — coins silently destroyed. Also shipped.

Three repro tests were written against the real store to confirm all three defects before touching anything; seven new tests pin the fix; 2,904 tests green. Root-caused and deployed the same day.

Two honest footnotes. Pre-fix saves keep the phantom blocks they already leaked (they're indistinguishable from real terminal-file usage) — they stop growing, and growing or re-creating the share clears them. And the reporter couldn't attach a screenshot because the report came back "too large" — that's its own bug, and it's on the list.

If you've got a rig that went quiet: it should already be paying again. If it isn't, the reporter's under Help.