Passer au contenu

Nous améliorons nos opérations pour mieux vous servir. Les commandes sont expédiées normalement depuis Laval, QC. Questions? Contactez-nous

Bitcoin accepté au paiement  |  Expédié depuis Laval, QC, Canada  |  Soutien expert depuis 2016

STRATUM_FAIL Critical

Stratum Connection Failed — Cross-Miner Troubleshooting

Stratum connection failed — the JSON-RPC TCP socket between the miner and the pool either never opens, opens and is reset, or completes the TCP handshake but dies before `mining.notify` arrives. Result: `0 accepted / 0 rejected` shares while the miner draws full wattage. Cross-cutting class affecting every Bitcoin miner running Stratum V1 or V2 (Antminer, Whatsminer, Avalon, Innosilicon, Bitaxe, Nerd family, PiAxe, Goldshell, Iceriver, Volcminer).

Critical — Immediate action required

Affected Models: All Antminer (S9 / S17 / S19 / S21 / L7 / T19 / T21 / Z15 / KA3 / D9), all Whatsminer (M30S / M50S / M60S series), all Avalon (1166 / 1246 / 1346 / 1366), Innosilicon (T2T / T3+ / A10 Pro), Bitaxe (Supra / Ultra / Gamma / GT / Hex / Max), NerdMiner / NerdAxe / NerdNOS / NerdQAxe / NerdQAxe++, PiAxe, StealthMiner, Goldshell, Iceriver, Volcminer.

Symptoms

  • Miner dashboard shows `0 accepted / 0 rejected` shares for 10+ minutes despite normal wattage at the wall
  • Pool dashboard for your worker / address shows 0 workers online and no shares ever submitted
  • Log contains `stratum connection failed`, `Pool 1: not connected`, `Connection refused`, `DNS resolution failed`, `Socket connect failed`, or `subscribe timeout`
  • Antminer kern.log shows `stratum_thread: socket close` or `cgminer: pool 0 ... no response`
  • Bitaxe / Nerd AxeOS Logs tab shows `stratum_api: connection failed` or `stratum_api: undesired state`
  • Whatsminer btminer dashboard shows red `Pool` indicator with `Stratum connect fail` or error codes 2010 / 2020
  • Avalon AUC log shows `pool dead` or `submit timeout`
  • Failover pools (Pool 2, Pool 3) cycle the same error — points at local network or config, not pool-side
  • LAN connectivity to the miner web UI is fine but the pool socket never establishes
  • Error appears every evening at the same time (peak ISP load) — points at ISP DPI / firewall mid-block
  • Miner used to mine cleanly, then stopped — suggests pool migration, port change, firmware regression, or new ISP rule
  • A laptop on the same network browses the web normally, ruling out total internet outage

Step-by-Step Fix

1

Cold power-cycle the miner — 30 seconds at the breaker, then back on. Clears wedged stratum-client state on every firmware family (cgminer, btminer, AxeOS, ESP-Miner, Avalon AUC, DCENT_OS, Braiins OS+, LuxOS). If the connection recovers cleanly, the firmware just needed a kick. Watch the miner status page for 5 minutes — `accepted` counter ticking up means you are done.

2

Open the miner's Pool config. Strip every prefix and trailing character from the URL field — no `stratum+tcp://`, no `stratum2+tcp://`, no `https://`, no trailing `/`, no surrounding whitespace. Bare hostname only (`public-pool.io`, `solo.ckpool.org`, `stratum.antpool.com`). Save and reboot. This single edit fixes the most common stratum failure on Bitaxe, Nerd, Whatsminer, Goldshell, and most third-party Antminer firmwares including DCENT_OS.

3

Verify the port number against the pool's published spec. Solo CKPool = 3333. Public-Pool solo = 21496. Ocean = 3334. Braiins SV1 = 3333, SV2 = 3336. Antpool = 3333 / 443 / 25. F2Pool = 1314 / 3333. ViaBTC = 3333 / 25 / 443. DEMAND = 3333 (SV2). One wrong digit lands you on a listener that doesn't speak stratum and the handshake hangs.

4

Restart the home router — 30 seconds unplugged, then back. Resolves DHCP / DNS poisoning / NAT-table issues that strangle long-running stratum sockets. Free fix, frequently effective. If the miner reconnects within 2 minutes of the router coming back, the router was the culprit.

5

Configure failover pools. Pool 1: preferred (your main). Pool 2: alternate solo (`public-pool.io:21496` for Bitaxe-class, `solo.ckpool.org:3333` for everything). Pool 3: pooled fallback (Antpool / F2Pool with a registered username). Save. The miner now self-heals when any single pool flaps.

6

From a laptop on the same network, run DNS + port reachability tests. Linux/macOS: `ping pool-host`, `nslookup pool-host`, `nc -v pool-host PORT`. Windows: `Test-NetConnection pool-host -Port PORT`. Expected: `Connected` / `TcpTestSucceeded : True`. If DNS fails the issue is your DNS configuration; if the port hangs your firewall or ISP is blocking it.

7

Set the miner's DNS to a public resolver: `1.1.1.1` (Cloudflare) or `9.9.9.9` (Quad9). Most miner web UIs expose a manual DNS field under Network. Save and reboot. Bypasses ISP-level DNS hijacking, captive-portal redirects, and dead ISP resolvers — three causes of phantom stratum failures.

8

Test the pool's TLS endpoint on `:443`. If `:3333` is blocked by firewall or ISP, `:443` almost always isn't because it looks identical to HTTPS. Switch the URL to `stratum+ssl://` (Antminer stock firmware) or enable the firmware's TLS toggle (Bitaxe AxeOS, btminer, Braiins OS+, DCENT_OS, LuxOS) and use the pool's documented TLS port.

9

Verify the authentication string format matches the pool's auth scheme. Solo pools (CKPool, Public-Pool, Ocean) authenticate by on-chain BTC address (`bc1q...`, `3...`, `1...`). Pooled pools (Antpool, F2Pool, ViaBTC, Braiins) authenticate by registered `account.workerID`. Mismatched scheme shows as `mining.authorize` reject after the socket opens.

10

Validate the BTC address against the blockchain: `curl https://mempool.space/api/address/YOUR_ADDR`. Returns JSON for valid mainnet addresses, 404 for malformed. A bad address (truncated, wrong network, checksum failure) fails at every solo pool. Generate a fresh address from Sparrow, Electrum, or a hardware wallet and retry.

11

Switch to firmware that surfaces stratum status clearly. Antminer: flash DCENT_OS — D-Central's open-source Antminer firmware with native Stratum V2, per-pool diagnostics, and structured stratum logs (alternatives: Braiins OS+, LuxOS, Vnish). Whatsminer: latest signed btminer build. Bitaxe / Nerd: build ESP-Miner from source with verbose stratum logging. Goldshell / Iceriver / Volcminer: stick with current vendor firmware, third-party options are limited.

12

Run a Wireshark or tcpdump capture on the miner's network egress during a connect attempt. Filter `tcp.port == 3333 or tcp.port == 21496 or tcp.port == 443`. Reconstruct the TCP stream — the failure point becomes obvious: TLS handshake mismatch, mid-stream RST from ISP DPI, V1/V2 mismatch, or pool-side `recv timeout`. Most mystery stratum failures resolve in the first 30 seconds of a packet capture.

13

Test for Stratum V1 vs V2 mismatch. If you are running Braiins OS+ or any SV2 client and connecting to a V1-only pool (or vice versa) the handshake fails immediately. Toggle the SV2 setting in firmware. DCENT_OS supports SV2 natively on Antminer hardware; Braiins OS+ does too. The pool's docs will say which protocol versions its endpoints accept.

14

Roll firmware forward or back one version. Specifically suspicious builds: ESP-Miner v2.13.x (set_difficulty fractional bug), pre-2019 S9 cgminer forks (DNS reconnect bug), early-2024 btminer with stratum reconnect leak. Document the version change so you can roll back if a new bug surfaces. On Antminer, DCENT_OS releases are signed and tracked on GitHub.

15

On Bitaxe / Nerd hardware, switch from WiFi to wired Ethernet via the official adapter (Hex). ESP32 / ESP-IDF has known WiFi-reconnect → stratum-stuck bugs ([ESP-Miner #252](https://github.com/bitaxeorg/ESP-Miner/issues/252)). Wired Ethernet eliminates this class of failure entirely. Run 24 hours wired before concluding the firmware is at fault.

16

Stop DIY when every pool fails on every fallback, DNS / port / firewall checks all pass from a laptop, packet capture confirms the miner is sending a well-formed `mining.subscribe`, and the pool side responds to a `nc` test from the same network. At that point you are chasing a firmware corruption, control-board NIC issue, or pool-side policy you cannot see. Open a D-Central support ticket at https://d-central.tech/contact/.

17

D-Central remote / bench process: full firmware reflash from clean image, NIC verification (link / negotiation / packet loss), bench-side stratum test against a controlled pool, return with confirmed working config and the failure mode documented. Typical turnaround 3-7 business days for remote support, 5-10 for hardware that ships in. Canada / US / international.

18

If hardware ships in, anti-static bag, double-box with at least 5 cm of foam on every side. Include a note with: observed symptoms, firmware version (build hash), pool URL / port / username format (mask the BTC address last 4 chars only for privacy), AND the laptop-side reachability test results from Step 6. This shaves an hour off bench diagnostics and lowers your bill.

When to Seek Professional Repair

If the steps above do not resolve the issue, or if you are not comfortable performing these repairs yourself, professional service is recommended. Attempting advanced repairs without proper equipment can cause further damage.

Related Error Codes

Still Having Issues?

Our team of Bitcoin Mining Hackers has been repairing ASIC miners since 2016. We have seen it all and fixed it all. Get a professional diagnosis.