Skip to content

[BUG] Transmission unable to download. #385

@Matteo961

Description

@Matteo961

Describe the bug
Using a docker compose stack with MediaManager, Prowlarr, Transmission.
I setup prowlar, indexing is working showing the different options when trying to select a movie or tv show.
How ever, proceeding with downloading it gives errors.

I already added the ipv4 bind in transmission to that of the docker network ip no change.
When I add transmission as a download client in Prowlarr and try that way, it works without any issues.

Expected behavior
Torrent is handed over to transmission for downloading.

Screenshots
//

Server Logs
File "/app/.venv/lib/python3.13/site-packages/transmission_rpc/client.py", line 464, in add_torrent

return next(iter(self._request(RpcMethod.TorrentAdd, kwargs, timeout=timeout).values()))

                 ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/app/.venv/lib/python3.13/site-packages/transmission_rpc/client.py", line 291, in _request

raise TransmissionError(

...<5 lines>...

)

transmission_rpc.error.TransmissionError: Query failed with result "Couldn't fetch torrent: Moved Permanently (301)".

Version
v1.12.1

Additional context
Add any other context about the problem here.

docker-compose.yaml

version: '3.8'

networks:
  homeservices:
    name: homeservices
    external: true
  backend:
    internal: true

services:
  transmission:
    image: linuxserver/transmission:latest
    container_name: transmission
    hostname: transmission
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
      - USER=XXXX
      - PASS=XXXX
    volumes:
      - /home/dock/transmission/config:/config
      - /home/dock:/watch
      - /r1data/jellyfin/media/torrents:/downloads
    ports:
      - 9091:9091
      - 51413:51413
      - 51413:51413/udp
    networks:
      homeservices:
        ipv4_address: 172.20.1.6
    labels:
      - "com.centurylinklabs.watchtower.enable=true"

  prowlarr:
    image: lscr.io/linuxserver/prowlarr:latest
    container_name: prowlarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /home/dock/prowlar:/config
    ports:
      - 9696:9696
    networks:
      - homeservices
    restart: unless-stopped
    labels:
      - "com.centurylinklabs.watchtower.enable=true"

  flaresolverr:
    # DockerHub mirror flaresolverr/flaresolverr:latest
    image: ghcr.io/flaresolverr/flaresolverr:latest
    container_name: flaresolverr
    environment:
      - LOG_LEVEL=${LOG_LEVEL:-info}
      - LOG_HTML=${LOG_HTML:-false}
      - CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none}
      - TZ=Europe/London
    ports:
      - 8191:8191
    restart: unless-stopped 
    networks:
      - homeservices
    labels:
      - "com.centurylinklabs.watchtower.enable=true"

  jellyfin:
    ////////

  mediamanager:
    container_name: mediamanager_server
    user: "1000:1000"
    image: ghcr.io/maxdorninger/mediamanager/mediamanager:latest
    ports:
      - 2598:8000/tcp
    environment:
      - CONFIG_DIR=/app/config
    volumes:
      - /r1data/jellyfin/media/:/data/
      - /home/dock/mediamanager/config/:/app/config/
      - /r1data/jellyfin/media/images/:/data/images/
    depends_on:
      mediamanager_postgres:
        condition: service_healthy
    networks:
      - homeservices
      - backend
    labels:
      - "com.centurylinklabs.watchtower.enable=true"
      
  mediamanager_postgres:
    container_name: mediamanager_postgres
    image: postgres:17
    restart: unless-stopped
    volumes:
      - ./postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: 
      POSTGRES_DB: MediaManager
      POSTGRES_PASSWORD: 
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
      interval: 10s
      timeout: 5s
      retries: 5
    networks:
      - backend
    labels:
      - "com.centurylinklabs.watchtower.enable=true"

config.toml

# MediaManager Example Configuration File
# This file contains all available configuration options for MediaManager
# Documentation: https://maxdorninger.github.io/MediaManager/introduction.html
#
# This is an example configuration file that gets copied to your config folder
# on first boot. You should modify the values below to match your setup.

[misc]
# it's very likely that you need to change this for MediaManager to work
frontend_url = "http://localhost:2598" # note the lack of a trailing slash
cors_urls = ["http://localhost:2598"] # note the lack of a trailing slash

image_directory = "/data/images"
tv_directory = "/data/tv"
movie_directory = "/data/movies"
torrent_directory = "/data/torrents" # this is where MediaManager will search for the downloaded torrents and usenet files

# you probaly don't need to change this
development = false

# Custom Media Libraries
# These paths should match your volume mounts in docker-compose.yaml
# Example: if you mount "./movies:/media/movies" then use path = "/media/movies/subdirectory"
[[misc.tv_libraries]]
name = "Live Action"
path = "/data/tv/live-action"  # Change this to match your actual TV shows location

[[misc.movie_libraries]]
name = "Documentary"
path = "/data/movies/documentary"  # Change this to match your actual movies location

[database]
host = "mediamanager_postgres"
port = 5432
user = "XXXXX"
password = "XXXXX"
dbname = "MediaManager"

[auth]
email_password_resets = false # if true, you also need to set up SMTP (notifications.smtp_config)

token_secret = "CHANGE_ME_GENERATE_RANDOM_STRING" # generate a random string with "openssl rand -hex 32", e.g. here https://www.cryptool.org/en/cto/openssl/
session_lifetime = 86400  # this is how long you will be logged in after loggin in, in seconds

# Admin users: Users who register with these email addresses will automatically become administrators
# If no users exist in the database, a default admin user will be created with the first email in this list
admin_emails = ["admin@example.com", "admin2@example.com"]

# OpenID Connect settings
[auth.openid_connect]
enabled = false
client_id = ""
client_secret = ""
configuration_endpoint = "https://openid.example.com/.well-known/openid-configuration"
name = "OpenID"

[notifications]
# SMTP settings for email notifications and email password resets
[notifications.smtp_config]
smtp_host = "smtp.example.com"
smtp_port = 587
smtp_user = "admin"
smtp_password = "admin"
from_email = "mediamanager@example.com"
use_tls = true

# Email notification settings
[notifications.email_notifications]
enabled = false
emails = ["admin@example.com", "dd@gmail.com"]  # List of email addresses to send notifications to

# Gotify notification settings
[notifications.gotify]
enabled = false
api_key = ""
url = "https://gotify.example.com"

# Ntfy notification settings
[notifications.ntfy]
enabled = false
url = "https://ntfy.sh/your-topic"

# Pushover notification settings
[notifications.pushover]
enabled = false
api_key = ""
user = ""

# Transmission settings
[torrents.transmission]
enabled = true
username = "XXXX"
password = "XXXX"
https_enabled = false
host = "172.20.1.6"
port = 9091
path = "/transmission/rpc" # RPC request path target, usually "/transmission/rpc"

[indexers]
# Prowlarr settings
[indexers.prowlarr]
enabled = true
url = "http://prowlarr:9696"
api_key = "XXXXXXX"
timeout_seconds = 60

# Title-based scoring rules
[[indexers.title_scoring_rules]]
name = "prefer_h265"
keywords = ["h265", "hevc", "x265", "h.265", "x.265"]
score_modifier = 100
negate = false

[[indexers.title_scoring_rules]]
name = "prefer_2160p"
keywords = ["2160p", "4K", "UHD", "uhd", "2160p"]
score_modifier = 100
negate = false

[[indexers.title_scoring_rules]]
name = "prefer_dolby"
keywords = ["DOLBY", "dolby", "atmos", "5.1", "surround"]
score_modifier = 100
negate = false

[[indexers.title_scoring_rules]]
name = "avoid_cam"
keywords = ["cam", "ts"]
score_modifier = -10000
negate = false

# Indexer flag-based scoring rules
[[indexers.indexer_flag_scoring_rules]]
name = "prefer_freeleech"
flags = ["freeleech", "freeleech75"]
score_modifier = 100
negate = false

[[indexers.indexer_flag_scoring_rules]]
name = "reject_nuked"
flags = ["nuked"]
score_modifier = -10000
negate = false

# Scoring rulesets
[[indexers.scoring_rule_sets]]
name = "default"
libraries = ["ALL_TV", "ALL_MOVIES"]
rule_names = ["prefer_h265", "prefer_2160p", "avoid_cam", "reject_nuked", "prefer_freeleech"]

# its very unlikely that you need to change this
[metadata]
[metadata.tmdb]
tmdb_relay_url = "https://metadata-relay.dorninger.co/tmdb"
primary_languages = [""]
default_language = "en"

[metadata.tvdb]
tvdb_relay_url = "https://metadata-relay.dorninger.co/tvdb"
  • I understand, that without logs and/or screenshots and a detailed description of the problem, it is very hard to fix bugs.
  • I have checked the documentation for help.
  • I have searched the issues for similar issues and found none.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions