Goldshell – Firmware Update Fails / Stuck at X%
Critical — Immediate action required
Symptoms
- Progress bar started moving in the Goldshell web UI (Settings → System Update or Firmware) and **stopped** at a specific percentage — `15%`, `33%`, `47%`, `66%`, `89%`, `97%`, or stuck on `Verifying...`
- The number has not advanced for **5+ minutes** but the page still says `Updating...`, not `Update failed` and not `Update complete`
- The browser tab loading spinner is gone (the upgrade-status `XHR` poll has timed out) but the displayed progress bar still shows the old percentage
- The miner's front-panel LEDs are still showing the **pre-upgrade** state (typically green-solid for a previously-hashing miner) — not yet on the red+green brick pattern
- You initiated the upgrade over **`WiFi`** rather than ethernet (a documented brick-trigger condition)
- The `.bin` / `.zip` firmware file you uploaded was **mismatched** to your model variant (e.g. `KD-BOX` image flashed to a `KD-BOX Pro`, `Mini-DOGE` image to a `Mini-DOGE II`)
- The firmware file was downloaded from a third-party source (Telegram, BitcoinTalk, a forum mirror) rather than the official Goldshell download page
- The upgrade button became unresponsive — clicking it does nothing, the page does not refresh
- You can still `ping <miner-ip>` and get replies, suggesting the kernel and network stack are alive but the userspace upgrade daemon has hung
- You **cannot** `ping <miner-ip>` and the network has gone dark — the miner has either rebooted into a recovery state or is mid-write with networking torn down
- Browser developer console shows a `502 Bad Gateway` or `connection reset` on the upgrade-status `XHR` after several minutes of polling
- You're on a known-fragile firmware version like `KD-BOX 2.1.1`, `KD-BOX 2.1.3`, `ST-BOX 2.2.0`, or any release flagged in GitHub firmware issues for upgrade failures
- Power LED on the PSU brick is rock-steady — no flicker, no clicking — confirming the upgrade hang is firmware-side, not a brownout
Step-by-Step Fix
Wait the full 15-minute window from the last progress change before doing anything else. Set a real timer. Do not refresh the browser, do not close the tab, do not click the upgrade button again, do not pull the AC. The eMMC write phase on Goldshell BOX-series miners runs from roughly 60% to 95% of the displayed progress bar and takes 5–12 minutes during which the UI receives no updates. Pulling power during this window is the single most common path from upgrade hang to red+green-LED brick. If the bar advances during the wait, reset the timer and continue waiting. If 15 minutes elapses with zero progress, move to Step 2.
Open a second browser tab and load http://<miner-ip> directly. If the Goldshell login page loads, the upgrade has already completed and rebooted — your original tab is just stale because the upgrade daemon tore down its XHR channel. Log in with admin / 123456789 (or your custom password), navigate to Settings → System Info, and confirm the firmware version matches the .bin you uploaded. If versions match, cold-boot once for cleanliness and you are done. If the second tab times out, the upgrade is genuinely stuck and you continue.
From a separate computer on the same LAN, run ping <miner-ip>. Replies in under 5 ms mean the kernel and network stack are alive — the upgrade daemon is the only thing hung. Replies still mean the miner can probably recover on its own; wait an additional 15 minutes (total 30 min from last progress) before any cold boot. No replies mean the network was torn down for the eMMC write phase, which is normal during the deepest part of the write — wait the full 30 minutes regardless.
At the 30-minute mark with no progress and no automatic reboot, perform a controlled cold boot. Unplug the AC at the wall, not at the PSU brick. Wait 60 seconds. Reconnect. Watch the front-panel LEDs for the first 5 minutes. The boot sequence will run an fsck on the eMMC (silent, no LED feedback) which can take 3–4 minutes. Possible outcomes: green solid = upgrade completed quietly during the freeze, you are done; red + blue = pool-connect issue, separate problem; red only = solid-red diagnostics; red + green stuck = the brick has happened, escalate to SD-card recovery; pre-upgrade green solid with old firmware version = upgrade rolled back cleanly, you can re-attempt now over ethernet.
Verify the firmware version that's actually running. Log in at http://<miner-ip> and check Settings → System Info for the running firmware. Three possible states: (a) new version is installed cleanly — you are done; (b) old version is back — the upgrade aborted and rolled back, safe to retry; (c) hybrid state where the version string matches new but the dashboard shows errors — partial install, plan an SD-card reflash before continuing to mine.
Switch to ethernet for the re-attempt — every time, no exceptions. Plug a known-good ethernet cable from the Goldshell directly to your router. In the miner's UI go to System → Network and delete any saved WiFi configuration before retrying — leaving a configured WiFi backup means the miner can fall back to it mid-upgrade and reproduce the original failure. If your physical layout makes ethernet impossible, get a powerline ethernet adapter (AV2000-class, ~CAD $90) or a long ethernet cable. Do not retry the upgrade on WiFi. Goldshell's own KB article 16805936980633 is explicit on this point.
Verify the firmware file before uploading. Re-download the .bin or .zip from the official Goldshell firmware page — not from a forum, not from a Telegram link, not from a third-party mirror. Verify the filename matches your exact model variant. Common gotchas: KD-BOX vs KD-BOX Pro vs KD-BOX II (three different images), Mini-DOGE vs Mini-DOGE II vs Mini-DOGE III+ (three more), LT5 vs LT5 Pro (two). Cross-reference the model name on the rear sticker of the miner against the filename. If the Goldshell page lists a sha256 or file size, verify it before uploading.
Power-condition the miner with a UPS for the re-attempt. A 500 VA consumer UPS (CAD $120–$180 at any Canadian retailer) carries a Goldshell BOX through a 15-minute upgrade window even during a line sag. The upgrade window is the single highest-risk moment in the miner's life — losing AC at 89% produces a brick that costs CAD $80–$300 to recover. The UPS pays for itself the first time it saves a brick.
Re-attempt the upgrade with all variables controlled. Ethernet plugged, WiFi config deleted, UPS in line, correct firmware file in hand, browser tab open and idle. Hit Upgrade, select the file, click Confirm. Watch the progress bar but do not interact with the page. If the upgrade succeeds (typically 8–15 minutes total for BOX-series), the miner reboots automatically and the login screen returns on the new version — done. If the bar hangs again at the same percentage, the firmware file itself is the problem — bad download, wrong variant, or a known-buggy release. Move to Step 10.
Roll back to a known-good firmware version. If the new version is buggy (GitHub KD-BOX Issue #50 covers 2.1.1 and 2.1.3), download an older release that worked for your model from the Goldshell archive or a community mirror, verify it's the correct variant, and flash that. If the rollback succeeds you're back to a working miner — pin the version and skip the bad release until Goldshell ships a fix. Save the working firmware locally (.zip to your file server) for next time.
Email hello@goldshell.com for the burn-<model>.img recovery image while you prepare your SD card. Subject: burn-<model>.img firmware recovery request — SN: <serial>. Include exact model, serial number from the rear sticker, and a one-line summary (upgrade hung at 89%, post-recovery LEDs went red+green stuck). Goldshell's response window is 24–72 hours typically, but can stretch to 2 weeks during Chinese holidays. The recovery image is not on GitHub or the public download page — email is the only documented channel. Once you receive yours, archive it locally for future use.
Acquire a quality microSD card. 8 GB or 16 GB, Samsung EVO Plus or SanDisk Industrial — Class 10 / U1 minimum. Avoid no-name cards; cheap cards corrupt during the recovery flash and stack a second brick on top of the first. Total cost: CAD $15–$25. Plus a microSD-to-USB adapter if you don't already have one (CAD $10).
Flash the burn-<model>.img to the microSD card with balenaEtcher. Open Etcher, click Flash from file, select the image Goldshell sent, click Select target, pick the SD card (triple-check — picking your laptop's SSD ends very badly), click Flash. Etcher auto-verifies the write. A red X on verification means a bad SD card — get a different one. Total time: 2–5 minutes for an 8 GB image.
Insert the SD card into the Goldshell's microSD slot, cold-boot, wait 15 minutes. The SD slot is on the back, side, or under a rubber flap depending on model — early KD-BOX and HS-BOX need 4 Phillips screws to expose it. Power on with SD inserted but ethernet unplugged. The bootloader prefers SD over eMMC and will rewrite eMMC from the SD image. Watch for LED activity; the recovery flash typically shows a slow blink or alternating pattern for 5–15 minutes, then the device either powers down (LEDs go dark) or reboots into the recovered state. Do not interrupt this. Pulling power mid-recovery produces a brick that is a control-board swap, not a reflash.
Verify the recovered miner is on a good firmware version, then change defaults. Remove the SD card, cold-boot one more time, run find.goldshell.com to locate the miner's new IP, log in at http://<IP> with admin / 123456789. Immediately change the default password (Settings → System → Password). Check System Info for the firmware version — if it's the same buggy release that originally hung, do not re-upgrade until Goldshell ships a fix. Run a 24-hour burn-in at nameplate hashrate before declaring the recovery successful.
When to stop DIY and ship to D-Central. You are at Tier 4 when: (a) the SD-card recovery flash fails to complete 3+ times across 3 quality cards; (b) post-recovery hashrate is below 70% of nameplate after 24-hour burn-in (eMMC wear, not firmware); (c) the eMMC chip shows visible damage under magnification — scorch marks, cracked epoxy; (d) the upgrade hang happened with WiFi deleted, ethernet plugged, UPS in line, and the correct firmware file — meaning the control board itself has a deeper fault; (e) you don't own a microSD adapter and don't want to buy one for a single miner. At any of these, the firmware path is exhausted and you're looking at hardware repair. Book through the D-Central ASIC Repair service 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.
