How to Fix “Stalled” and “Metadata Not Loading” in Your Torrent Client
Last updated: February 15, 2026 | Tested in qBittorrent 5.0.3, LibreTorrent 3.7, and Flud 1.13.12 on Windows 11, Ubuntu 24.04, and Android 15
You added a torrent twenty minutes ago. The status bar says “Stalled” or it’s stuck on “Downloading metadata” and won’t budge. You’ve paused and resumed. Restarted the client. Nothing changes. Don’t waste an afternoon reinstalling your OS or chasing 2018 forum threads—the fix is usually a single checkbox away.
Stalls are almost always down to one of ten configuration bottlenecks, and they have a specific diagnostic order. Most troubleshooting guides dump a random grab bag of fixes — clear your cache, reinstall your OS, toggle every setting you can find — without explaining why each step matters or when to skip it. That’s wasted effort.
This guide works through fixes from most likely to least likely. If you’re running a VPN (and you should be — see our anonymous torrenting guide), several of these issues are VPN-related, and we’ll call those out. Port forwarding through a P2P-capable VPN like ProtonVPN alone fixes a huge percentage of stall problems, so we’ll hit that early.

Why Torrents Stall: The Short Version
A stalled torrent means your client has the metadata (it knows what files it needs and how they’re split into pieces) but can’t find any peers willing to send data. A torrent stuck on “downloading metadata” is an earlier failure — your client doesn’t even know what the torrent contains yet.
Different problems, different causes:
| Status | What it means | Most likely cause |
|---|---|---|
| Stalled | Has metadata, no active data transfer | Dead swarm, port blocked, ISP throttling |
| Downloading metadata | Doesn’t have file info yet | DHT/PeX disabled, tracker offline, magnet link with no live peers |
| Queued | Client is waiting to start it | Too many active torrents (check queue settings) |
| Errored | Client hit a hard failure | Disk full, file locked, write permissions |
If your status says Queued, that’s not a stall — your client limits how many torrents download simultaneously. Check Settings → BitTorrent → Maximum active downloads in qBittorrent and raise it if needed. If it says Errored, check your disk space and file permissions. This guide covers the first two: stalled and metadata failures.
Step 1: Check the Seeder Count
Check the Seeds column. If it says 0 (0) — zero connected, zero available — the torrent is dead. No fix in this guide will resurrect a torrent nobody is seeding.
The number in parentheses is total known seeders across all trackers and DHT. The number outside is how many you’re actually connected to. So 0 (14) means 14 seeders are reportedly out there, but your client can’t reach any of them — that’s a connectivity problem, and the steps below will fix it. But 0 (0) means nobody has the complete file. Find the content elsewhere via our torrent search blueprint.
Before moving on: wait at least 5-10 minutes after adding a torrent. Some trackers don’t update peer lists instantly, and DHT discovery can take time on less popular content.
Step 2: Force Reannounce to Tracker
Right-click the stalled torrent and select Force reannounce (qBittorrent) or Force announce (other clients). This tells your client to immediately ping every tracker and request a fresh peer list instead of waiting for the next scheduled announce cycle (which can be 30-60 minutes out).
Check the Trackers tab at the bottom panel. The Status column tells you what’s going on:
- Working — tracker is responding normally
- Updating — announce in progress
- Not contacted yet — force reannounce fixes this
- Connection timed out / tracker offline — that tracker is down, but other trackers or DHT might still find peers
If every single tracker shows an error, the torrent relies on trackers that are all offline. DHT and PeX become your only way to find peers.
Step 3: Enable DHT, PeX, and Local Peer Discovery
Open your client’s settings and make sure these three are on:
In qBittorrent: Go to Settings → BitTorrent and check:
- ✅ Enable DHT (Distributed Hash Table)
- ✅ Enable PeX (Peer Exchange)
- ✅ Enable Local Peer Discovery
LibreTorrent (Android): Settings → Network — enable DHT, PeX, and LSD.
In Flud (Android): Settings → BitTorrent — toggle on all three.
When you click a magnet link, your client only has an infohash — a SHA-1 fingerprint of the torrent’s metadata. It doesn’t have the file list, piece sizes, or piece hashes yet. It needs to find at least one peer who already has that metadata.
Your client finds those peers through three channels: the trackers embedded in the magnet link, the DHT network (a decentralized peer lookup system), and PeX (peers sharing their peer lists with each other). If DHT and PeX are disabled, the client can only ask trackers. Trackers down? You’re stuck on “downloading metadata” indefinitely.
⚠️ Heads up: If you’re on a private tracker, ignore this step. Private trackers require DHT and PeX to be disabled — enabling them can get you banned for leaking peers outside the tracker. This applies only to public torrents from sites like TorrentGalaxy.
Step 4: Check Your Listening Port and Port Forwarding
This is where a huge number of stalls actually live, and it’s the step most people skip.
Your torrent client listens on a specific port for incoming connections from other peers. If that port is blocked — by your router, firewall, VPN, or ISP — you can only make outgoing connections. You become a peer that can only connect to others who don’t have the same problem. That limits your available swarm dramatically, and on less popular torrents, it causes stalls.
Check your listening port in qBittorrent at Settings → Connection → Listening Port. Note the number.
Test whether it’s actually reachable from the outside:
- Make sure your VPN is connected
- Go to canyouseeme.org and enter your listening port
- Success — port is open, skip to Step 5
- Error / Timed out — port is blocked, likely your stall cause
The fix: port forwarding through your VPN. Most VPN providers don’t forward ports by default, which means your client can’t accept incoming peer connections. ProtonVPN supports port forwarding on its paid plans — enable it in the app, grab the assigned port, and set that same port as your listening port in qBittorrent.
For the full port forwarding walkthrough (including interface binding), see the port forwarding section of our VPN for torrenting survival guide.
IPv6 Mismatch: The 2026 Silent Killer
A growing cause of stalls in 2026 is IPv6/IPv4 mismatch. Your ISP assigns you an IPv6 address, your torrent client tries to connect to peers over IPv6, but your VPN tunnel only supports IPv4. The connections silently fail — no error, just nothing happens.
Check this in qBittorrent: Settings → Advanced → Network interface and look at the IP version option. If your VPN only tunnels IPv4 (most still do), set the client to IPv4 only. If your VPN supports dual-stack (Mullvad does for some servers), you can leave it on both.
You can verify what your VPN is tunneling by visiting test-ipv6.com while connected. If it shows no IPv6 connectivity through the tunnel, force your client to IPv4.
CGNAT: When Port Forwarding Fails at the Router Level
If you’re behind CGNAT (Carrier-Grade NAT), your ISP shares one public IP among many customers. Port forwarding at the router level won’t work because you don’t have a dedicated public IP. This is increasingly common on mobile networks, fixed wireless, and budget ISPs.
VPN port forwarding bypasses CGNAT entirely — the VPN server has its own public IP with your forwarded port. Our anonymous torrenting guide covers CGNAT in detail under Layer 5.
Step 5: Verify Your VPN Allows P2P
Not all VPN servers support P2P traffic. Some providers restrict torrenting to specific server locations — connect to the wrong server and your torrent traffic gets silently dropped or throttled to zero.
In ProtonVPN, look for servers marked with the P2P icon (two arrows). And, in NordVPN, use “P2P” specialty servers. In Mullvad, all servers allow P2P. If you’re on another provider, check their docs — and most free VPNs will cut your connection the moment they detect P2P traffic.
The symptom: you connect to a few peers, speeds hover near zero, and the torrent stalls out. Switch to a confirmed P2P server and it clears up immediately.
Step 6: Check Your Firewall Rules
Port set up correctly through the VPN but still closed? Your local firewall might be eating the traffic.
Windows: Open Windows Defender Firewall → Advanced Settings → Inbound Rules. Look for a rule allowing your torrent client on the correct port. If there isn’t one, create it — allow the port for both TCP and UDP.
Quick test: temporarily disable the firewall, check if the torrent connects, re-enable, and add the proper rule. Don’t leave it disabled.
Linux:
sudo ufw status
sudo ufw allow [your-port]/tcp
sudo ufw allow [your-port]/udp
Android: Generally not an issue — Android doesn’t expose a user-configurable firewall that blocks specific ports.
Step 7: Add Public Trackers
If the torrent’s built-in trackers are all dead, inject working public trackers. This is especially effective for older torrents where the original tracker shut down but people are still seeding.
Grab a current list from newtrackon.com. In qBittorrent, right-click the stalled torrent → Edit trackers → paste the new tracker URLs (one per line) at the bottom.
Reliable public trackers as of early 2026:
udp://tracker.opentrackr.org:1337/announce
udp://open.stealth.si:80/announce
udp://tracker.torrent.eu.org:451/announce
udp://explodie.org:6969/announce
udp://exodus.desync.com:6969/announce
After adding, force reannounce again (Step 2). If seeders exist on DHT but the original trackers were dead, this can unstick the torrent immediately.
Step 8: Clear DHT Cache and Restart
If DHT seems broken (zero peers discovered on any torrent, not just one), your DHT routing table may be corrupted.
qBittorrent: Close the client completely. Navigate to the config folder:
- Windows:
C:\Users\[YourName]\AppData\Local\qBittorrent\ - Linux:
~/.local/share/qBittorrent/ - macOS:
~/Library/Application Support/qBittorrent/
Delete the file called dht.dat (or dht_nodes.dat depending on version). Restart qBittorrent.
⚠️ Warning: Deleting this file wipes your known peer list. Your client will rebuild the DHT routing table from scratch, which takes a few minutes. Expect slower peer discovery on all torrents until the table repopulates.
LibreTorrent / Flud: Clear app cache via Android Settings → Apps → [client] → Storage → Clear Cache. This resets DHT without losing your torrent list.
Step 9: Test for ISP Throttling
Torrents work but crawl painfully, or stall intermittently? Your ISP may be throttling P2P traffic using deep packet inspection to identify BitTorrent protocol patterns.
The test:
- Disconnect your VPN
- Start a well-seeded legal torrent (a Linux ISO — always seeded, nobody’s watching)
- Note the speed
- Connect your VPN
- Start the same torrent
- If speeds are faster with the VPN, your ISP is throttling P2P
The VPN is the fix — encrypted traffic means the ISP can’t fingerprint the protocol. For proper before/after methodology with specific test data, see our Android VPN guide.
Step 10: Nuclear Option — Delete and Re-Add
Every step above done and a specific torrent still won’t move? The .torrent metadata itself might be corrupt. Bad .torrent files and magnet links with wrong infohashes exist, especially from scraped or clone sites.
- Remove the torrent from your client (keep the downloaded data if any)
- Find the same content from a different source — different uploader, different site. Our torrent search blueprint covers where to look
- Re-add the new torrent
- If you kept partial data, the client will recheck existing pieces and resume instead of starting from zero
Android-Specific Fixes: LibreTorrent and Flud
Android clients have their own stall causes on top of everything above.
Battery optimization kills your torrent client in the background. This is the #1 cause of stalled torrents on Android. The OS suspends the client to save battery and your download just stops.
LibreTorrent: Go to Android Settings → Apps → LibreTorrent → Battery → Unrestricted. On Samsung, also exempt it from Deep Sleep in Settings → Battery → Background usage limits.
Flud: Same process. Also enable Settings → Power → Keep CPU awake within Flud itself.
Storage permissions: Android 11+ scoped storage can prevent torrent clients from writing to certain directories. If your torrent errors with a write failure, make sure the download path is somewhere the app has access — typically Downloads/ or the app’s own data folder.
Wi-Fi sleep: Some phones kill Wi-Fi when the screen turns off. Check Settings → Wi-Fi → Advanced → Keep Wi-Fi on during sleep → Always.
When “Stalled” Is Actually Correct Behavior
This trips people up more than anything else. If you’ve configured interface binding in your torrent client — binding it to your VPN’s network interface so it can’t leak traffic — and your VPN disconnects, the torrent will show as stalled.
That’s not a bug. That’s your kill switch doing its job.
Interface binding means the client literally cannot send or receive data unless traffic flows through the VPN interface (proton0, wg0, tun0). VPN drops → no matching interface → no connections → stalled. Your real IP stays out of the swarm.
If your torrents stall every time the VPN hiccups, don’t remove interface binding. Stabilize the VPN connection instead — switch from UDP to TCP, try a different server, or move to WireGuard (more stable than OpenVPN for most people). For the full interface binding walkthrough and why you should never torrent without it, see our VPN torrenting survival guide.
Quick Diagnostic Table
| If your status is… | And seeds show… | Try this first |
|---|---|---|
| Downloading metadata | 0 (0) | Torrent is dead — find a new source |
| Downloading metadata | 0 (10+) | Enable DHT/PeX (Step 3), force reannounce (Step 2) |
| Stalled | 10+ (50+) | Enable VPN port forwarding (Step 4) |
| Stalled | Any, but only when VPN drops | Interface binding working correctly — reconnect VPN |
| Stalled (Android) | Any | Disable battery optimization for client |
| Slow then stalls | Any | ISP throttling — connect VPN (Step 9) |
| Stalled, one torrent only | Seeders exist | Add public trackers (Step 7), try different source (Step 10) |
FAQ
I’ve done everything and my torrent still won’t download. What am I missing?
If the seeder count is truly zero, no troubleshooting will help — the content isn’t being shared by anyone. Use a different source. If seeders exist but you can’t connect, the most commonly missed fix is port forwarding through your VPN. Without it, you rely entirely on outgoing connections, which cripples your ability to join smaller swarms.
Does force reannounce actually do anything?
It’s not placebo. A normal announce happens on a schedule (every 30-60 minutes depending on the tracker). Force reannounce skips the wait and pulls a fresh peer list immediately. Doesn’t help if the tracker is dead, but it jumpstarts connections when the tracker is up and your client just hasn’t asked recently.
Why do some torrents say “Stalled” for a few seconds then start downloading?
qBittorrent marks a torrent as stalled after a configurable inactivity period (Settings → BitTorrent → Torrent stalled after __ minutes of inactivity). Brief stalls while establishing connections are normal, especially on torrents with fewer seeders. If it resolves within a minute, ignore it.
Can my ISP see that I’m torrenting if I use a VPN?
With a properly configured VPN (kill switch or interface binding, no DNS leaks), your ISP sees encrypted traffic going to the VPN server. They can’t see the protocol or content. Without a VPN, they see everything — protocol, destinations, file hashes. Our anonymous torrenting guide covers the full threat model.
Is “stalled” the same as “downloading at 0 kB/s”?
No. “Downloading at 0 kB/s” means you have active peer connections but nobody is sending data right now — you’re in the queue. “Stalled” means zero active connections transferring data. The first resolves with patience; the second needs the steps above.
I’m on a university or corporate network and nothing works.
Institutional networks almost always block P2P traffic at the firewall, and many block VPN protocols too. Standard WireGuard or OpenVPN connections will fail. You need obfuscation — try connecting on TCP port 443 or use a VPN’s stealth mode. Our power user guide covers DNS-over-HTTPS and ECH techniques that help in these environments.




