Why Torrents Get Stuck on the Final Piece

When downloading a torrent, getting stalled on the final piece due to a slow peer can turn a fast download into a frustrating bottleneck. This article explains what happens when a single low-speed uploader delays the completion of an otherwise finished file, how this impacts system performance and swarm health, and the mechanisms torrent clients use to resolve the issue.

The Mechanism of the Last-Piece Bottleneck

BitTorrent protocol splits files into hundreds or thousands of smaller pieces, usually ranging from 256 KB to several megabytes in size. During the download process, clients prioritize downloading rare pieces first to ensure optimal distribution across the swarm.

When a download reaches 99%, only a few blocks remain unretrieved. If your client requests these final blocks from a peer with low upload bandwidth, high latency, or an unstable connection, the download rate plummets to match that single peer’s upload speed, regardless of your available downstream bandwidth.

The Direct Impacts of a Slow Final Peer

How BitTorrent Clients Mitigate the Issue: “End-Game Mode”

To prevent a single slow peer from holding the download hostage, modern BitTorrent clients implement End-Game Mode (or Endgame).

Once all pending blocks of a torrent have been requested and only a few remain unreceived, the client shifts behavior: 1. It sends requests for the remaining missing blocks to all connected peers, not just the single slow peer. 2. The fastest peer to respond delivers the required data first. 3. As soon as a block arrives and passes verification, the client immediately sends Cancel messages to all other peers for that specific block to prevent redundant bandwidth usage.

If a client does not support End-Game Mode, or if the swarm has very few seeds and peers holding the last piece, the user must either wait out the slow transfer, manually drop the slow peer connection, or re-announce to the tracker to discover faster peers.