Volcminer D1 Pool Connection Failed: Stratum Error Fix
Warning — Should be addressed soon
Symptoms
- Web UI Miner Status shows pool state as `Connecting...`, `Disconnected`, `Connection Failed`, or `Authorize Failed` cycling on a 30-90 second loop
- Local hashrate tile displays a non-zero `GH/s` reading but pool-side accepted hashrate stays flat at `0`
- Pool dashboard (Litecoinpool, F2Pool, ViaBTC, Prohashing, NiceHash) shows the worker as `offline`, `inactive`, or absent — the worker name has never authenticated
- Stratum log entries reference `subscribe timeout`, `authorize failed`, `TCP connection refused`, `DNS resolution failed`, or `socket closed by peer`
- Setup completed cleanly: miner booted, got a DHCP lease, Web UI is reachable on the LAN, Configuration > Pool/Miner page accepted the saved values
- You just swapped pools (e.g. moved from Litecoinpool to F2Pool, or NiceHash to Prohashing) and shares stopped flowing the moment you saved
- You pasted a worker string that includes `stratum+tcp://`, a trailing `/`, an emoji, or whitespace — common copy/paste failure mode from a phone
- Rejected share rate climbing visibly on the pool dashboard while accepted shares trickle or stop entirely
- Pool 1 fails but Pool 2 / Pool 3 (configured as failovers) also do not pick up — all three slots in the same failure state
- After a router reboot, ISP outage, or power blip, a previously working pool config has flipped to `Connection Failed` and never recovers without a power-cycle
- On a phone hotspot the miner connects fine; on the home LAN it does not — points at firewall, CGNAT, or DNS
- Miner clock shows a date drift of 24+ hours from real time — TLS-bearing pools (port 3443 / SSL endpoints) reject the handshake on a clock skew
Step-by-Step Fix
Log into the Web UI with `root` / `ltc@dog` (factory default — change after first login). Open Configuration > Pool/Miner. Read every character of Pool 1's URL, port, worker name, and password. Re-type — do not paste — the worker string. Strip any leading `stratum+tcp://` if your firmware version expects bare `host:port` form, strip trailing slashes, strip whitespace. Save. Power-cycle by pulling the cord for a full 30 seconds. A warm reboot from the Web UI is not enough to flush stuck Stratum state on D1-class control boards.
Confirm the pool URL and port match the pool's published Scrypt endpoint. Litecoinpool: `stratum+tcp://us.litecoinpool.org:3333` (US East), `stratum+tcp://us2.litecoinpool.org:3333` (US West), `stratum+tcp://eu.litecoinpool.org:3333` (EU). F2Pool: `stratum+tcp://ltc.f2pool.com:8888`, fallback `:5200` or `:3335`. ViaBTC: `stratum+tcp://ltc.viabtc.com:3333` or `:25` / `:443` if 3333 is firewalled. Prohashing: `stratum+tcp://prohashing.com:3333`. Kryptex: `stratum+tcp://ltc.kryptex.network:7016` (US) or `ltc-eu.kryptex.network:7016` (EU). NiceHash Scrypt: `stratum+tcp://scrypt.auto.nicehash.com:9200`. Wrong port = silent connection refused on most pools.
Match the worker format to the pool's expected form — this is the #1 root cause D-Central sees on Scrypt-pool tickets. Litecoinpool: `username.workername` plus password `1` (you must register a pool account first; raw LTC address is rejected). F2Pool: `f2pool_account.workername` plus password `x`. ViaBTC: `viabtc_account.workername` plus any password. Prohashing: `prohashing_username.workername` plus blank password (or password arguments like `a=scrypt,c=dogecoin,n=D1Rig`). NiceHash: `BTC_ADDRESS.workername` plus password `x` — NiceHash is the only major Scrypt pool that accepts a raw address as the username. Kryptex: `LTC_ADDRESS.workername` plus password blank or `x`. Get this wrong and the pool rejects the authorize call without ever issuing a job.
Fill all three pool slots with the same pool/worker/password (D1 firmware's documented behavior is that Pool 1 > Pool 2 > Pool 3 are tried in priority order; identical entries guarantee resume after a single-pool blip). For real failover, set Pool 1 to your primary, Pool 2 to a different region of the same pool (US > EU or vice versa), Pool 3 to a different pool entirely (Litecoinpool primary, F2Pool fallback, NiceHash floor). Save and reboot.
Test outbound connectivity from any machine on the same LAN. From a PC: open a terminal and run `telnet ltc.f2pool.com 8888` (or PowerShell `Test-NetConnection ltc.f2pool.com -Port 8888`). You want a TCP connection to open. If the connection refuses or times out, the issue is your network — firewall block, CGNAT, ISP-level filtering — not the miner. Try alternate ports: `:25`, `:443` are commonly opened on residential firewalls and several Scrypt pools mirror their stratum on those ports for exactly this reason.
Override the router's DNS to `1.1.1.1` (Cloudflare) and `8.8.8.8` (Google). Save the router config, reboot the router, then power-cycle the miner. Canadian ISPs (Bell, Rogers, Vidéotron, Cogeco, Shaw) and several US tier-2 ISPs occasionally produce slow or stale DNS for mining-pool hostnames at their default resolvers — not outright blocked, just slow enough to trip the D1's stratum-subscribe timeout. This is the highest-yield single fix on Canadian residential setups for stratum-handshake failures.
Hardcode the pool IP. From a working machine, resolve the hostname: `nslookup ltc.f2pool.com` or `dig ltc.f2pool.com`. Take the returned IP and substitute it into the miner's Pool 1 URL: `stratum+tcp://203.0.113.45:8888`. This bypasses DNS entirely and proves whether the problem is name resolution vs. transport. Note: pool IPs rotate — this is a diagnostic, not a permanent config. If shares flow on hardcoded IP but not on hostname, your DNS is the culprit (back to Step 6).
Sync the miner's clock. SSH access on D1 stock firmware uses `root` / `ltc@dog`; once in, run `date` and compare against real time. If the system clock is more than 60 seconds off, NTP is failing or blocked. Set the time manually with `date -s 'YYYY-MM-DD HH:MM:SS'` (UTC), then save. Pool endpoints that wrap stratum in TLS (port 3443 on Litecoinpool, SSL ports on F2Pool) outright reject a handshake on a skewed clock. Even plain TCP stratum can break if the pool is sensitive to timestamp drift in mining.notify.
Switch the miner to a different region's pool endpoint. If you're on `us.litecoinpool.org` and seeing handshake timeouts, swap to `eu.litecoinpool.org` and observe. Routing problems between certain North American ISPs and certain Asia-hosted Scrypt pools are persistent — F2Pool's `ltc.f2pool.com` resolves to multiple regional clusters and you can be unlucky and get the worst-routed one for your ISP. Regional flip is a one-line config change with high diagnostic value.
Verify Scrypt mining is enabled on your pool account. Litecoinpool requires you to register a pool account and configure both an LTC address (prefixes `L`, `M`, `ltc1`) and an optional DOGE address (prefix `D`) for merged-mining payouts before any worker can authorize. F2Pool, ViaBTC, and Prohashing require an account login plus the LTC sub-account. Pasting your address into a brand-new pool you've never registered with = silent authorize-failed every time.
Power-cycle the router AND the miner together. Unplug both for 60 seconds. Power up router first, wait for full WAN sync (LEDs steady, gateway pingable), then power up the miner. A surprising fraction of `Connection Failed` tickets resolve here because the router was holding a stale NAT-table entry for the miner's previous Stratum session and silently dropping the new SYN. Worth doing once before deeper diagnosis.
Run a packet capture from your router. On OpenWrt or pfSense, run `tcpdump -i <wan-iface> host ltc.f2pool.com` for 2 minutes while the miner attempts to connect. You want to see SYN -> SYN-ACK -> ACK, then outbound JSON `mining.subscribe` followed by a pool `mining.set_difficulty` and `mining.notify` response. Missing SYN-ACK = outbound TCP filtering on your network (hotel / corporate / CGNAT). Subscribe sent but no response = pool-side issue or routing problem. Subscribe with an error response = stratum-dialect or auth incompatibility. This isolates client vs. network vs. pool in five minutes.
Factory-reset the miner. On D1 hardware: power-cycle then hold the recessed `RST` pinhole on the back for 5-10 seconds with the miner powered. The Web UI returns to factory defaults (`root` / `ltc@dog`). Re-run the network setup. Re-enter pool config from scratch using the most-known-good combination from Step 2 + Step 3 for your account. Confirm shares accepted on the pool dashboard before adding any failover pool. Reset clears NVRAM corruption that survives reboots — a documented failure mode where partially-written config blocks the Stratum subsystem from connecting cleanly.
Plan a firmware re-flash if reset doesn't clear the issue. WARNING: VolcMiner's firmware update screen has a documented quirk where un-checking `keep configuration` wipes pool, password, and network settings. Save a copy of every config field before flashing. Download the latest firmware bundle from `volcminer.com/techsupport`. Cross-check the file hash with the manufacturer's published hash before writing. Flash only over Ethernet, never over WiFi. Never flash during a storm or on a circuit without a UPS — a brownout mid-flash bricks the control board and forces a Tier-4 ship-to-bench recovery.
Try a known-good third pool as a control. Stand up a free Prohashing or NiceHash account in 5 minutes, configure with the pool's documented worker form, point the miner at it. If shares flow on the new pool but not on the original, the original pool account / worker config is the issue (account locked, sub-account misconfigured, payout address blacklisted). If shares fail on the new pool too, the issue is local — back to Steps 5-7 for network and Steps 13-14 for firmware.
Capture a full diagnostic bundle if you intend to ship. Web UI Miner-Status screenshot, Pool/Miner config screenshot, System screenshot showing firmware version and uptime, two-minute tcpdump of the stratum exchange (Step 12), photo of the serial-number sticker, and a short text note describing what you've already tried. D-Central's repair bench triages Scrypt-ASIC tickets two to three times faster when these artifacts arrive with the device. Saves you diagnostic billing time.
Ship to D-Central for Tier 4 repair. Stop DIY when: (a) factory reset + verified worker config + verified network path still won't authenticate against any pool, (b) Web UI is slow or unresponsive after a clean reflash, (c) the miner reboots randomly while attempting to connect (control-board / NVRAM failure pattern), (d) physical damage on the control board, ribbon connectors, or hashboard is visible, (e) you've tried both stock firmware and a verified re-flash with no change, or (f) you want a Canadian bench instead of a 6-12 week China round-trip with customs and freight overhead. Pack hashboard and control board in anti-static bags, double-box with 5+ cm of foam every side. Book at https://d-central.tech/services/asic-repair/.
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.
