This is the net2040 incident log for week 46 (2026-11-09 to 2026-11-15). The issue comments record these misses: Rust 3, TypeScript 4, C++ 2, and Python 2 single misses plus one outage of about 19 eligible turns. All entries fall between 2026-11-12 and 2026-11-14.

The log is blameless. It lists what the issues record and nothing else. net2040 is a public devnet, so none of this describes mainnet. The xOneTS, xOnePy and xOneC repositories are private.

What counts as a miss here?

A miss is an eligible leader turn without a seal from that seat. The seat-soak issues ask for a cause on each miss: candidate fault, network or peer, other validator, host or environment, or unknown (xOneTS#78). Times are UTC on the date in the Time column. A seat is shown by the first hex digits of its address.

Which misses and outages were recorded?

The table has 11 rows with a miss or an outage and 3 rows with an incident but no recorded miss.

REFERENCE TABLEScroll to explore all columns →
Client Seat Time Round / block Recorded cause Recorded fix or follow-up
Rust (#47) 0xa0ea, borrowed 11-12, run 02:34-02:40 Rounds 760,369 and 760,382 (2 misses) Not attributable: early returns in v2_tick log nothing. Hypothesis only: vote gossip not aggregated Run stopped. A 03:10 run on a build with a producer fix sealed 3 of 3. The comment does not link the fix to these misses
Rust 0xa0ea 11-12, 02:40:20-02:40:49 No miss Stop order hit the wrong process. Two processes held the key for about 29 s Procedure gap: stop by exact pid
Rust 0xa0ea 11-13, 04:27 Round 801002; block 807610 Planned restart at 04:26:09 across an epoch switch. The next turn came before the new process held the QC of the head. Class: host or environment swap-mint.sh refuses a swap within 60 rounds of an epoch boundary
C++ (#38) 0x00ce, borrowed 11-13, rollback 11:33:45 135 of 137 turns sealed (2 misses); stall at block 813431 Executor lacked EIP-8037 in-frame state gas Fix #75; seat retaken 15:06:19
C++ 0x00ce 11-13, before 15:13 No miss Standby relaunch crash-looped for six minutes: the binary read its chainspec from a deleted build directory xOneC#76
C++ 0x00ce 11-13, rollback 09:07:32 No miss The seal check ran 1 s after the third seal, before the child block reached the archive Clean rollback; re-run 3 of 3; the check now waits for the child
Python (#85) 0xc33a, borrowed 11-13, 11:30-11:34 Stall at block 813431 Executor lacked EIP-8037 in-frame state gas Hand rollback after 420 of 420 seals; fix #89; re-flip 14:48:49
TypeScript (#78) 0xfC71, own 11-13, 19:45:31 Round 815509 First noted as candidate fault (7,482 ms empty block). Reclassified as host or environment: fsync waits on a disk 96% full Issue #87; fix #88; restart 19:56:19
TypeScript 0xfC71 11-13, 19:54:28 Round 815621 Same Same
TypeScript 0xfC71 11-13, 21:50:49 Round 817379 Same Swap onto the #88 build 21:52:37
Python 0xc33a 11-14, 06:49:47 Round 824976 Host load average about 130 from compile jobs on the shared host The watch rolls back to geth on two consecutive misses
Python 0xc33a 11-14, 12:35:26-13:02:55 About 19 turns; flip block 836393 Watchdog saw a late heartbeat and stopped the node. Host load 50-75, disk 99-100%. The rollback to geth failed: its port was in use Freed 240 GB; relaunched 13:02:55. Two client follow-ups, no issue number
TypeScript 0xfC71 11-14, 17:12:34 Round 833211; block 839747 Host: disk 95%, load 18 Disk needs attention; no issue number
Python 0xc33a 11-14, 19:05:20 Round 834666; block 841201 Host load 55 from 21 compile processes; disk 85% Build load reduced

What do the miss counts say?

  • Rust: 3 (2 in a test run, 1 on the held seat). The tracker says 0 for the held seat.
  • TypeScript: 4. The last tracker post (11-14, 19:30) agrees.
  • C++: 2, both in the 11-13 stall. The tracker counts from the 15:06 re-flip and says 0.
  • Python: 2 single misses and one outage. The 11-13 stall has no miss count in the issue.

The tracker on xOneRS#140 shows Python counters of 1 at 07:30, 2 at 08:30 and 3 at 12:30 on 11-14. Only the 06:49 miss has a recorded cause.

Which timeouts are not counted as misses?

  • Round 765,742 (11-12): the 0xc33a slot fell in a cutover gap, 06:04:07-06:04:25, with no signer on the key.
  • Round 770,296 (11-12): the 0x00ce slot fell between the geth stop and the producer start. No time is recorded.
  • Round 808,200 (11-13): a timeout at the TypeScript entry switch, with 12 votes.
  • Rounds 773,938 and 774,435 (11-12): they belonged to other validators.

What is not recorded?

  • Times and cause for the two Rust misses on 11-12.
  • The length of the 11-13 stall, and whether the Rust and TypeScript seats were affected. The TypeScript issue records its propose transaction in block 813431.
  • A cause for Python counters 2 and 3 on 11-14.
  • Rounds and times for the two C++ misses.
  • Any entry dated 11-09 to 11-11 or 11-15.

One Rust comment (11-14, 03:54) puts the epoch-boundary restart at "00:xx" on 11-13. The comment of 11-13, 04:27 says 04:26:09. This log uses 04:26:09.

A loopback soak (chain 4747) recorded 30 misses in restart windows. It is not net2040, so it is not in the table. The Apothem soak has not started, and the soak minimums are not confirmed (#47).

How does this relate to the fair-mint result?

The fair-mint comment of 11-14, 17:55 says every xOne seat sealed within 0.5% of its fair share. Two geth seats took the turns the Python seat lost in its outage. Read four xOne clients minting fair share for the numbers and how fair share is measured for the method.

Frequently asked questions

How many misses did each xOne client record in week 46?

Rust 3, TypeScript 4 and C++ 2. Python recorded 2 single misses and one outage of about 19 eligible turns. The counts come from the issue comments, not from the tracker.

What caused the misses?

Host or environment is the recorded cause for the Rust restart miss, all four TypeScript misses, both single Python misses and the Python outage. An executor gap (EIP-8037) caused the two C++ misses. The two Rust misses of 11-12 have no recorded cause.

Did any seat sign twice?

The Rust comment of 11-12 says two processes held one key for about 29 s. It says no double seal and no conflicting vote was possible in that window. No other double signing is recorded.

Sources

  • xOneRS#47: Gate E record, comments of 2026-11-12 to 2026-11-14.
  • xOneTS#78: own seat 0xfC71, comments of 2026-11-13 and 2026-11-14.
  • xOnePy#85: seat 0xc33a record, comments of 2026-11-13 and 2026-11-14.
  • xOneC#38: seat 0x00ce record, comments of 2026-11-13 and 2026-11-14.
  • xOneRS#140: hourly tracker and fair-mint comments, 2026-11-13 to 2026-11-14.