Torrent stuck at 99.9X%

Author: lagraviereScienceCreated Jun 22, 2026Updated Sep 7, 2026

What is the issue?

Hi all,

This issue has been previously described here https://github.com/transmission/transmission/issues/7919 and it is constantly happening for me in Transmission 4.1.2 (stable version)

Bug Description

As mentioned above, they ALL stall at around 99.97%

No matter which torrent, it's the same behavior for ALL of them

Besides this issue my docker compose stack (see below) works perfectly: download and upload, automatic opening of port for port forwarding, etc.

THIS is important

I am sure that, this issue is relatively recent , from 2022 to 2024, I used to run an old docker image, on another 'old' server, probably with Transmission version 3.X or something like that -> and I NEVER had the issue! Sadly I have lost access and all logs from this old server. So I can't provide a version number but I can say that it was running Ubuntu Server 22.04.

What I ruled out for sure

  • This is not a tracker issue, because this happens on private and public server alike
  • This is not a VPN issue, the connection inside the container works fine
  • This is not a lack of seeders/leechers, as the issue happens even with extremely popular shows

Software setup

I'm running Transmission 4.1.2 with the following docker compose stack

yaml
services:
  gluetun-proton:
    image: qmcgaw/gluetun:latest
    container_name: gluetun-proton
    cap_add:
      - NET_ADMIN
    restart: unless-stopped
    networks:
      - private_secured_network

    environment:
      - TZ=Etc/UTC
      - VPN_SERVICE_PROVIDER=custom
      - VPN_TYPE=wireguard
      
      # Enable ProtonVPN Port Forwarding
      - VPN_PORT_FORWARDING=on
      - VPN_PORT_FORWARDING_PROVIDER=protonvpn
      
      # Local network access rule
      - FIREWALL_OUTBOUND_SUBNETS=192.168.1.0/24
      - FIREWALL_INPUT_PORTS=9091

      # Gluetun internal control port
      - HTTP_CONTROL_SERVER=on
      - HTTP_CONTROL_SERVER_PORT=9999

      # Automation Hook: Updates transmission with forwarded port
      - VPN_PORT_FORWARDING_UP_COMMAND=/bin/sh -c "sleep 10 && apk add --no-cache transmission-remote && transmission-remote localhost:9091 -n ${TRANSMISSION_USER}:${TRANSMISSION_PASS} -p {{PORTS}} && transmission-remote localhost:9091 -n ${TRANSMISSION_USER}:${TRANSMISSION_PASS} -t all --reannounce"

    volumes:
      # Mount your Wireguard config file
      - ${CONFIG_PATH}/wg0.conf:/gluetun/wireguard/wg0.conf:ro
      - gluetun-proton-state:/gluetun

    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=private_secured_network"
      - "traefik.http.routers.transmission-proton.rule=Host(`${DOMAIN_NAME}`)"
      - "traefik.http.routers.transmission-proton.entrypoints=websecure"
      - "traefik.http.routers.transmission-proton.tls.certresolver=myresolver"
      - "traefik.http.services.transmission-proton.loadbalancer.server.port=9091"

    healthcheck:
      test: ["CMD", "nc", "-z", "127.0.0.1", "9999"]
      interval: 15s
      timeout: 5s
      retries: 5
      start_period: 10s

  transmission-proton:
    image: lscr.io/linuxserver/transmission:latest
    container_name: transmission-proton
    restart: unless-stopped
    network_mode: "service:gluetun-proton"
    depends_on:
      gluetun-proton:
        condition: service_healthy

    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - USER=${TRANSMISSION_USER}
      - PASS=${TRANSMISSION_PASS}

    volumes:
      - ${CONFIG_PATH}/transmission-config:/config
      - ${DATA_PATH}/downloads:/downloads
      - ${DATA_PATH}/watch:/watch

networks:
  private_secured_network:
    external: true

volumes:
  gluetun-proton-state:

Here's my settings.json

json
{
    "alt-speed-down": 50,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 540,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": false,
    "alt-speed-time-end": 1020,
    "alt-speed-up": 50,
    "announce-ip": "",
    "announce-ip-enabled": false,
    "anti-brute-force-enabled": false,
    "anti-brute-force-threshold": 100,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": false,
    "blocklist-url": "http://www.example.com/blocklist",
    "cache-size-mb": 4,
    "default-trackers": "",
    "dht-enabled": true,
    "download-dir": "/downloads/completed",
    "download-queue-enabled": true,
    "download-queue-size": 5,
    "encryption": 1,
    "idle-seeding-limit": 30,
    "idle-seeding-limit-enabled": false,
    "incomplete-dir": "/downloads/incomplete",
    "incomplete-dir-enabled": true,
    "lpd-enabled": true,
    "message-level": 2,
    "peer-congestion-algorithm": "",
    "peer-id-ttl-hours": 6,
    "peer-limit-global": 23090,
    "peer-limit-per-torrent": 4000,
    "peer-port": 46362,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": "le",
    "pex-enabled": true,
    "pidfile": "",
    "port-forwarding-enabled": true,
    "preallocation": 1,
    "preferred_transports": [
        "utp",
        "tcp"
    ],
    "prefetch-enabled": 1,
    "proxy_url": null,
    "queue-stalled-enabled": true,
    "queue-stalled-minutes": 30,
    "ratio-limit": 2.0,
    "ratio-limit-enabled": false,
    "rename-partial-files": true,
    "reqq": 2000,
    "rpc-authentication-required": true,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-host-whitelist": "127.0.0.1",
    "rpc-host-whitelist-enabled": false,
    "rpc-password": "blablablabla",
    "rpc-port": 9091,
    "rpc-socket-mode": "0750",
    "rpc-url": "/transmission/",
    "rpc-username": "mrjay",
    "rpc-whitelist": "127.0.0.1",
    "rpc-whitelist-enabled": false,
    "scrape-paused-torrents-enabled": true,
    "script-torrent-added-enabled": false,
    "script-torrent-added-filename": "",
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "script-torrent-done-seeding-enabled": false,
    "script-torrent-done-seeding-filename": "",
    "seed-queue-enabled": false,
    "seed-queue-size": 10,
    "sequential_download": false,
    "sleep-per-seconds-during-verify": 100,
    "speed-limit-down": 100,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 100,
    "speed-limit-up-enabled": false,
    "start-added-torrents": true,
    "start_paused": false,
    "tcp-enabled": true,
    "torrent-added-verify-mode": "fast",
    "torrent_complete_verify_enabled": false,
    "trash-original-torrent-files": false,
    "umask": "002",
    "upload-slots-per-torrent": 14,
    "utp-enabled": true,
    "watch-dir": "/watch",
    "watch-dir-enabled": true,
    "watch-dir-force-generic": false
}

Logs (?)

I accessed the command line of the container, to look for more logs, but all I could find is this:

[migrations] started
[migrations] no migrations found
───────────────────────────────────────
      ██╗     ███████╗██╗ ██████╗
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝
   Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID:    1000
User GID:    1000
───────────────────────────────────────
Linuxserver.io version: 4.1.2-r0-ls348
Build-date: 2026-06-09T13:20:54+00:00
───────────────────────────────────────
    
[custom-init] No custom files found, skipping...
Connection to localhost (127.0.0.1) 9091 port [tcp/*] succeeded!
[ls.io-init] done.
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
sendto: Operation not permitted
[migrations] started
[migrations] no migrations found
usermod: no changes
───────────────────────────────────────
      ██╗     ███████╗██╗ ██████╗
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝
   Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID:    1000
User GID:    1000
───────────────────────────────────────
Linuxserver.io version: 4.1.2-r0-ls348
Build-date: 2026-06-09T13:20:54+00:00
───────────────────────────────────────
    
ln: failed to create symbolic link '/transmissionic/index.html': File exists
ln: failed to create symbolic link '/combustion-release/index.html': File exists
ln: failed to create symbolic link '/flood-for-transmission/index.html': File exists
ln: failed to create symbolic link '/kettu/index.html': File exists
ln: failed to create symbolic link '/transmission-web-control/index.html': File exists
[custom-init] No custom files found, skipping...
Connection to localhost (127.0.0.1) 9091 port [tcp/*] succeeded!
[ls.io-init] done.
[2026-06-19T12:57:57.780+0200] ERR utils.cc:144 Couldn't read '/config/torrents/0570209986b051d8eb376a7b43576ecc7f999cb5.magnet': No such file or directory (2) (utils.cc:144)

(I would love to provide more logs, but I didn't find more interesting stuff in the container) So yes, there's a few errors here, but nothing about torrent stalling (I'm sure there's log files that I haven't found yet, do not hesitate to point me in the direction and I'll post them here)

There is not always an error and yet the torrents are all blocked at 99.9X% -> of course they end up unblocking themselves after a LONG while. "Long while" = 15 minutes/an hour roughly.

Hardware and network

  • The VPN works -> all the downloads start right away and ARE being downloaded (up to 99.9X% and then stall for a long while), plus, I can see my upload working fine

  • The automatic port opening works. I can see in the side panel -> edit preferences -> network menu that IPv4 port is Open and the port number checks out

  • The server is not lacking any disk space, there's space available on both HDD that I'm using for torrents

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdg1       3.6T  1.5T  2.0T  44% /home/mrjay/Desktop/data2
/dev/sdh        5.5T  3.7T  1.5T  71% /home/mrjay/Desktop/data
  • There used to be an issue with the amount of files handled by Docker, a while ago, and as a consequence I modified my daemon.json to look like this:
cat /etc/docker/daemon.json
{
  "data-root": "/home/mrjay/Desktop/apps/docker",
  "exec-root": "/home/mrjay/Desktop/apps/docker/tmp",

  "storage-driver": "overlay2",

  "features": {
    "buildkit": true
  },

  "log-driver": "json-file",
  "log-opts": {
    "max-file": "3",
    "max-size": "10m"
  },

  "runtimes": {
    "nvidia": {
      "path": "nvidia-container-runtime",
      "args": []
    }
  },

  "default-ulimits": {
    "nofile": {
      "Name": "nofile",
      "Soft": 65535,
      "Hard": 65535
    }
  }
}

Thank in advance for your help, I hope I gave enough information to describe the bug -> in any case, do not hesitate to ask me for more info

I hope the information right below is correct I selected "transmission-daemon" because out of all the options it was the one making sense and I doubt that the Transmission WebUI that I use is the source of the problem anyway

Which application of Transmission?

transmission-daemon

Which version of Transmission?

4.1.2

Source: transmission/transmission