On 2026-06-30 the Polkadot Asset Hub multi-block NPoS election (round 238) failed to finalize and entered a repeating RevertToSignedIfNotQueued loop. In each loop the signed-phase reopened and every submitted solution had its deposit slashed (~221 DOT per submission).
My signed staking-miner account (15qdf…), one of only two signed miners on Polkadot Asset Hub, lost 443.41 DOT (612.24 -> 168.83). Parity's own staking-miner (16ciP5…) was slashed from 882.51 to 0.02 DOT the same morning. Both (and only) signed miners on the network were slashed, which demonstrates this is a protocol-level fault, not operator error. I am requesting reimbursement of the slashed amount.
15qdfNWg9rgVYY9NH18R6F8hYGbKjQRVG5pqqPjzQEQF28n3MultiBlockElectionSigned.SortedScores across rounds 237 (healthy) and 238 (failed): the only two submitters were this account and Parity's 16ciP5rjt4Yqivi1SWCGh7XsA8BDguV4tnTuyr937u2NME6h.RewardBase (5 DOT) on most rounds.Daily account total (free + reserved), one row per day, growing by ~+4.98 DOT/day (≈ RewardBase 5 DOT/round minus fees), deposits always returned (reserved = 0):
| Block | Date (UTC) | Total (DOT) |
|---|---|---|
| 17220412 | 2026-06-19 12:13 | 567.4181 |
| 17258983 | 2026-06-20 12:05 | 572.3983 |
| 17297555 | 2026-06-21 11:46 | 577.3784 |
| 17336126 | 2026-06-22 12:43 | 582.3586 |
| 17374697 | 2026-06-23 13:52 | 587.3388 |
| 17413269 | 2026-06-24 14:39 | 592.3190 |
| 17451840 | 2026-06-25 15:05 | 597.2991 |
| 17490412 | 2026-06-26 15:40 | 602.2793 |
| 17528983 | 2026-06-27 16:07 | 607.2595 |
| 17567555 | 2026-06-28 16:06 | 607.2595 |
| 17606126 | 2026-06-29 15:16 | 612.2397 |
| 17644697 | 2026-06-30 14:33 | 168.8331 <- after round 238 |
Steady, predictable winning operation for 10+ days, then a single-day collapse of 443.41 DOT on 2026-06-30.
Normally the Asset Hub election resolves once, at around 03:41 UTC, in minutes. On 2026-06-30 round 238 failed to produce a queued solution and the runtime's AreWeDone = RevertToSignedIfNotQueuedOf logic reopened the signed phase repeatedly (around every 35 min). The election never finalized, round was still stuck at 238 more than 10 hours later (14:33 UTC). Each reopened cycle accepted a submission and then slashed its deposit.
Account total (free + reserved) read via state_getStorageAt at each block hash:
| Block | Time (UTC) | free | reserved | TOTAL | Event |
|---|---|---|---|---|---|
| 17630498 | 05:56:48 | 612.2397 | 0 | 612.2397 | clean, pre-incident |
| 17630748 | 06:05:12 | 390.5364 | 221.2736 | 611.8100 | submission 1: deposit reserved + fee |
| 17630998 | 06:14:24 | 390.5364 | 0 | 390.5364 | deposit 1 SLASHED (−221.2736) |
| 17631498 | 06:32:48 | 168.8331 | 221.2736 | 390.1067 | submission 2: deposit reserved + fee |
| 17631724 | 06:41:36 | 168.8331 | 0 | 168.8331 | deposit 2 SLASHED (−221.2736) |
Block hashes:
0x1769a73861da7e62185d7c0757ff19d1c5841facbe22493bd311c0fa07a76a9f0xa365a72fe5181c1b42ff47a2060fe29aa11ebd00268cbd2b0c5c2edcba53cb1f0x73fdeb31cec0d2f0c866f6e449048f43353c748148f85d1ff93364ba70529c640xaa77a47da6a446f5247b9b737e97ef478074a241596e71b882ec494d2135a1c70xc7d53049f3335ab5bcb3340ce29d6493cf8dc7e3b72088b9ed6b64fe5cd0ea54The reserved deposit dropping to 0 while the total falls by the same amount (not returning to free) is the signature of a slash.
Parity's signed miner 16ciP5rjt4Yqivi1SWCGh7XsA8BDguV4tnTuyr937u2NME6h held a stable ~882 DOT for 13 days, then was drained the same morning through 4 successive slashes:
| Block | Time (UTC) | Total (DOT) |
|---|---|---|
| 17624000 | 02:03:36 | 882.5063 |
| 17627000 | 03:51:12 | 660.8016 (−221) |
| 17628000 | 04:26:48 | 439.0970 (−221) |
| 17629000 | 05:03:36 | 217.3924 (−221) |
| 17630000 | 05:39:36 | 0.0183 (−217) |
Both, and the only, signed miners on Polkadot Asset Hub were slashed to the point of being forced offline as a result of the network wide election failure.
@PolkadotDevs account publicly confirmed the incident: i.e. an official statement that this is a protocol-side bug introduced by a governance change, not operator error. (This account had already flagged it on Matrix 8 hours earlier.)minimal_stake from ~1,160,585 DOT (accepted 29 Jun) to ~666,297 DOT (30 Jun), below the static MinimumScore threshold of 789,555 DOT (calibrated at 70% of the last 30 pre-AHM relay-chain elections), so every submitted solution was rejected as too low and its deposit slashed each cycle. (Threshold independently confirmed on-chain: MinimumScore.minimal_stake = 7895552765679931 planck; the 29 Jun solution was above it, the 30 Jun solution below.)MinimumScore to match the reduced backing so a valid solution can be queued again.| Item | Amount |
|---|---|
| 2 signed-submission deposits slashed (2 × 221.2736) | 442.5472 DOT |
| Submission fees paid for the failed round-238 txs | 0.8593 DOT |
| Total removed from the account (612.2397 -> 168.8331) | 443.4065 DOT |
Reimbursement requested: 443.4065311802 DOT (4434065311802 planck), the exact, on-chain-verifiable balance loss.
(Not claimed, but for context: the foregone RewardBase of 5 DOT for the round that would normally have been won.)
pallet-election-provider-multi-block is configured with type Fallback = multi_block::Continue ("we chill and do nothing in the fallback") and on-chain election is compiled only under #[cfg(feature = "runtime-benchmarks")], i.e. no on-chain rescue exists in production.type AreWeDone = multi_block::RevertToSignedIfNotQueuedOf, when no valid solution is queued, the signed phase reopens and the election is prolonged indefinitely.DepositBase = GeometricDeposit, 100·2ⁿ + page deposit) is slashed when a submission is not queued as the valid solution.RevertToSignedIfNotQueued and slashed every submitter's deposit each ~35-minute cycle until both signed miners were exhausted/offline. Because the loop fragmented the signed phase, each miner submitted alone (as the first/only submitter, base deposit 100·2⁰ = 100 DOT + page deposits = 221.2736 DOT), and that full deposit was slashed each cycle.On 2026-06-30, the Polkadot Asset Hub election round 238 failed and entered a repeating loop where all submitted solutions had their deposits slashed. Two accounts lost significant DOT: a staking-miner address lost 443.41 DOT, and Parity's own staking-miner lost from 882.51 to 0.02 DOT.