Radarr - No data while importing movies

I’m using sonarr, jackett, jellyfin, qbittorrentvpn and radarr behind a traefik reverse proxy. Everything works fine except for radarr which throws this error when I try to import movies:

2023-04-16 20:49:41.9|Fatal|RadarrErrorPipeline|Request Failed. POST /api/v3/movie/import

[v4.4.4.7068] System.Net.Http.HttpRequestException: No data available (api.radarr.video:443)
 ---> System.Net.Sockets.SocketException (61): No data available
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
   at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|277_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
   at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.attemptConnection(AddressFamily addressFamily, SocketsHttpConnectionContext context, CancellationToken cancellationToken) in D:\a\1\s\src\NzbDrone.Common\Http\Dispatchers\ManagedHttpDispatcher.cs:line 296
   at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.onConnect(SocketsHttpConnectionContext context, CancellationToken cancellationToken) in D:\a\1\s\src\NzbDrone.Common\Http\Dispatchers\ManagedHttpDispatcher.cs:line 272
   at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(HttpRequestMessage request)
   at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellation(CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.AuthenticationHelper.SendWithAuthAsync(HttpRequestMessage request, Uri authUri, Boolean async, ICredentials credentials, Boolean preAuthenticate, Boolean isProxyAuth, Boolean doRequestAuth, HttpConnectionPool pool, CancellationToken cancellationToken)
   at System.Net.Http.HttpMessageHandlerStage.Send(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpMessageHandlerStage.Send(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.SocketsHttpHandler.Send(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpMessageInvoker.Send(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.Send(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
   at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponse(HttpRequest request, CookieContainer cookies) in D:\a\1\s\src\NzbDrone.Common\Http\Dispatchers\ManagedHttpDispatcher.cs:line 101
   at NzbDrone.Common.Http.HttpClient.ExecuteRequest(HttpRequest request, CookieContainer cookieContainer) in D:\a\1\s\src\NzbDrone.Common\Http\HttpClient.cs:line 124
   at NzbDrone.Common.Http.HttpClient.Execute(HttpRequest request) in D:\a\1\s\src\NzbDrone.Common\Http\HttpClient.cs:line 59
   at NzbDrone.Common.Http.HttpClient.Get[T](HttpRequest request) in D:\a\1\s\src\NzbDrone.Common\Http\HttpClient.cs:line 290
   at NzbDrone.Core.MetadataSource.SkyHook.SkyHookProxy.GetMovieInfo(Int32 tmdbId) in D:\a\1\s\src\NzbDrone.Core\MetadataSource\SkyHook\SkyHookProxy.cs:line 92
   at NzbDrone.Core.Movies.AddMovieService.AddSkyhookData(Movie newMovie) in D:\a\1\s\src\NzbDrone.Core\Movies\AddMovieService.cs:line 112
   at NzbDrone.Core.Movies.AddMovieService.AddMovies(List`1 newMovies, Boolean ignoreErrors) in D:\a\1\s\src\NzbDrone.Core\Movies\AddMovieService.cs:line 76
   at lambda_method245(Closure , Object , Object[] )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Radarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in D:\a\1\s\src\Radarr.Http\Middleware\BufferingMiddleware.cs:line 28
   at Radarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in D:\a\1\s\src\Radarr.Http\Middleware\IfModifiedMiddleware.cs:line 41
   at Radarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in D:\a\1\s\src\Radarr.Http\Middleware\CacheHeaderMiddleware.cs:line 33
   at Radarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in D:\a\1\s\src\Radarr.Http\Middleware\StartingUpMiddleware.cs:line 41
   at Radarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in D:\a\1\s\src\Radarr.Http\Middleware\UrlBaseMiddleware.cs:line 27
   at Radarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in D:\a\1\s\src\Radarr.Http\Middleware\VersionMiddleware.cs:line 28
   at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
   at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)

Any ideas as what’s wrong?

With the limited information you’ve provided, I’d assume your radarr container hasn’t got internet access.

Actually it does:

traceroute api.radarr.video
traceroute to api.radarr.video (172.64.101.3), 30 hops max, 46 byte packets
172.64.101.3 (172.64.101.3)  5.560 ms  5.492 ms  5.563 ms

What more info would you need? I’m a bit at a loss because everything else works fine

Post your compose - do you have it going via your qbittorrentvpn container?

Yes

version: "3"
services:
  traefik:
    container_name: traefik
    environment:
      PGID: "1000"
      PUID: "1000"
    labels:
      - traefik.enable=true
      - traefik.docker.network=web
      - traefik.constraint-label=web
    image: traefik
    logging:
      driver: json-file
      options:
        max-file: "10"
        max-size: 200k
    networks:
      default:
    ports:
      - mode: ingress
        target: 80  
        published: "80"
        protocol: tcp
      - mode: ingress
        target: 443
        published: "443"
        protocol: tcp
    restart: unless-stopped
    volumes:
      - type: bind
        source: /home/debian/.config/appdata/traefik
        target: /etc/traefik
        bind:
          create_host_path: true
      - type: bind
        source: /home/debian/.config/appdata/traefik/traefik.toml
        target: /etc/traefik/traefik.toml
        bind:
          create_host_path: true
      - type: bind
        source: /home/debian/.config/appdata/traefik/traefik_dynamic.toml
        target: /etc/traefik/traefik_dynamic.toml
        bind:
          create_host_path: true
      - type: bind
        source: /home/debian/.config/appdata/traefik/acme.json
        target: /etc/traefik/acme.json
        bind:
          create_host_path: true
      - type: bind
        source: /storage/data/
        target: /storage
        bind:
          create_host_path: true
      - type: bind
        source: /etc/localtime
        target: /etc/localtime
        read_only: true
        bind:
          create_host_path: true
      - type: bind
        source: /var/run/docker.sock
        target: /var/run/docker.sock
        read_only: true
        bind:
          create_host_path: true
  handbrake:
    container_name: handbrake
    environment:
      GROUP_ID: "1000"
      TZ: Europe/xxxx
      USER_ID: "1000"
    image: jlesage/handbrake
    logging:
      driver: json-file
      options:
        max-file: "10"
        max-size: 200k
    depends_on:
      - traefik
    networks:
      default:
    labels:
      - traefik.enable=true
      - traefik.http.routers.handbrake.entryPoints=websecure
      - traefik.http.routers.handbrake.tls.certResolver=letsEncrypt
      - traefik.http.routers.handbrake.rule=Host(`handbrake.example.com`)
      - traefik.http.services.handbrake.loadbalancer.server.port=5800
      - traefik.docker.network=web
      - traefik.port=5800
    ports:
      - mode: ingress
        target: 5800
        published: "5800"
        protocol: tcp
    restart: unless-stopped
    volumes:
      - type: bind
        source: /etc/localtime
        target: /etc/localtime
        read_only: true
        bind:
          create_host_path: true
      - type: bind
        source: /home/debian/.config/appdata/handbrake
        target: /config
        bind:
          create_host_path: true
      - type: bind
        source: /storage/data/
        target: /storage
        bind:
          create_host_path: true
      - type: bind
        source: /storage/data/handbrake/output
        target: /output
        bind:
          create_host_path: true
      - type: bind
        source: /storage/data/handbrake/watch
        target: /watch
        bind:
          create_host_path: true
  jackett:
    container_name: jackett
    environment:
      PGID: "1000"
      PUID: "1000"
      TZ: Europe/xxxx
    image: lscr.io/linuxserver/jackett
    logging:
      driver: json-file
      options:
        max-file: "10"
        max-size: 200k
    depends_on:
      - traefik
    networks:
      default:
    labels:
      - traefik.enable=true
      - traefik.http.routers.jackett.entryPoints=websecure
      - traefik.http.routers.jackett.tls.certResolver=letsEncrypt
      - traefik.http.routers.jackett.rule=Host(`jackett.example.com`)
      - traefik.http.services.jackett.loadbalancer.server.port=9117
      - traefik.docker.network=web
      - traefik.port=9117
    ports:
      - mode: ingress
        target: 9117
        published: "9117"
        protocol: tcp
    restart: unless-stopped
    volumes:
      - type: bind
        source: /etc/localtime
        target: /etc/localtime
        read_only: true
        bind:
          create_host_path: true
      - type: bind
        source: /home/debian/.config/appdata/jackett
        target: /config
        bind:
          create_host_path: true
      - type: bind
        source: /storage/data/
        target: /storage
        bind:
          create_host_path: true
  jellyfin:
    container_name: jellyfin
    environment:
      PGID: "1000"
      PUID: "1000"
      TZ: Europe/xxxx
    image: lscr.io/linuxserver/jellyfin    
    logging:
      driver: json-file
      options:
        max-file: "10"
        max-size: 200k
    depends_on:
      - traefik
    networks:
      default:
    labels:
      - traefik.enable=true
      - traefik.http.routers.jellyfin.entryPoints=websecure
      - traefik.http.routers.jellyfin.tls.certResolver=letsEncrypt
      - traefik.http.routers.jellyfin.rule=Host(`jellyfin.example.com`)
      - traefik.http.services.jellyfin.loadbalancer.server.port=9117
      - traefik.docker.network=web
      - traefik.port=9117
    ports:
      - mode: ingress
        target: 8096
        published: "8096"
        protocol: tcp
      - mode: ingress
        target: 8920
        published: "8920"
        protocol: tcp
    restart: unless-stopped
    volumes:
      - type: bind
        source: /etc/localtime
        target: /etc/localtime
        read_only: true
        bind:
          create_host_path: true
      - type: bind
        source: /home/debian/.config/appdata/jellyfin
        target: /config
        bind:
          create_host_path: true
      - type: bind
        source: /storage/data/
        target: /storage
        bind:
          create_host_path: true
      - type: bind
        source: /tmp
        target: /transcode
        bind:
          create_host_path: true
  portainer:
    command:
      - -H
      - unix:///var/run/docker.sock
    container_name: portainer
    environment:
      TZ: Europe/xxxx
    image: portainer/portainer-ee:latest
    logging:
      driver: json-file
      options:
        max-file: "10"
        max-size: 200k
    depends_on:
      - traefik
    networks:
      default:
    labels:
      - traefik.enable=true
      - traefik.http.routers.portainer.entryPoints=websecure
      - traefik.http.routers.portainer.tls.certResolver=letsEncrypt
      - traefik.http.routers.portainer.rule=Host(`portainer.example.com`)
      - traefik.http.services.portainer.loadbalancer.server.port=9000
      - traefik.docker.network=web
      - traefik.port=9000
    ports:
      - mode: ingress
        target: 9000
        published: "9000"
        protocol: tcp
    restart: unless-stopped
    volumes:
      - type: bind
        source: /etc/localtime
        target: /etc/localtime
        read_only: true
        bind:
          create_host_path: true
      - type: bind
        source: /var/run/docker.sock
        target: /var/run/docker.sock
        bind:
          create_host_path: true
      - type: bind
        source: /home/debian/.config/appdata/portainer
        target: /data
        bind:
          create_host_path: true
      - type: bind
        source: /storage/data/
        target: /storage
        bind:
          create_host_path: true
  qbittorrentvpn:
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    container_name: qbittorrentvpn
    environment:
      ENABLE_PRIVOXY: no
      LAN_NETWORK: 172.18.0.0/16
      NAME_SERVERS: 1.1.1.1,8.8.8.8
      PGID: "1000"
      PUID: "1000"
      TZ: Europe/xxxx
      VPN_CLIENT: openvpn
      VPN_ENABLED: yes
      VPN_OPTIONS: ""
      VPN_PASS: xxxx
      VPN_PROV: xxxx
      VPN_USER: xxxx
      WEBUI_PORT: "8282"
    image: ghcr.io/binhex/arch-qbittorrentvpn
    logging:
      driver: json-file
      options:
        max-file: "10"
        max-size: 200k
    depends_on:
      - traefik
    networks:
      default:
    labels:
      - traefik.enable=true
      - traefik.http.routers.qbittorrentvpn.entryPoints=websecure
      - traefik.http.routers.qbittorrentvpn.tls.certResolver=letsEncrypt
      - traefik.http.routers.qbittorrentvpn.rule=Host(`qbittorrentvpn.example.com`)
      - traefik.http.services.qbittorrentvpn.loadbalancer.server.port=8282
      - traefik.docker.network=web
      - traefik.port=8282
    ports:
      - mode: ingress
        target: 6881
        published: "6881"
        protocol: tcp
      - mode: ingress
        target: 6881
        published: "6881"
        protocol: udp
      - mode: ingress
        target: 8118
        published: "8118"
        protocol: tcp
      - mode: ingress
        target: 8282
        published: "8282"
        protocol: tcp
      - mode: ingress
        target: 51413
        published: "51413"
        protocol: tcp
      - mode: ingress
        target: 51413
        published: "51413"
        protocol: udp
    privileged: true
    restart: unless-stopped
    sysctls:
      net.ipv4.conf.all.src_valid_mark: "1"
    volumes:
      - type: bind
        source: /etc/localtime
        target: /etc/localtime
        read_only: true
        bind:
          create_host_path: true
      - type: bind
        source: /home/debian/.config/appdata/qbittorrentvpn
        target: /config
        bind:
          create_host_path: true
      - type: bind
        source: /storage/data/
        target: /storage
        bind:
          create_host_path: true
      - type: bind
        source: /home/debian/.config/appdata/.openvpn
        target: /config/openvpn
        bind:
          create_host_path: true
      - type: bind
        source: /home/debian/.config/appdata/.wireguard
        target: /config/wireguard
        bind:
          create_host_path: true
  radarr:
    container_name: radarr
    environment:
      PGID: "1000"
      PUID: "1000"
      TZ: Europe/xxxx
    image: lscr.io/linuxserver/radarr
    logging:
      driver: json-file
      options:
        max-file: "10"
        max-size: 200k
    depends_on:
      - traefik
    networks:
      default:
    labels:
      - traefik.enable=true
      - traefik.http.routers.radarr.entryPoints=websecure
      - traefik.http.routers.radarr.tls.certResolver=letsEncrypt
      - traefik.http.routers.radarr.rule=Host(`radarr.example.com`)
      - traefik.http.services.radarr.loadbalancer.server.port=7878
      - traefik.docker.network=web
      - traefik.port=7878
    ports:
      - mode: ingress
        target: 7878
        published: "7878"
        protocol: tcp
    restart: unless-stopped
    volumes:
      - type: bind
        source: /etc/localtime
        target: /etc/localtime
        read_only: true
        bind:
          create_host_path: true
      - type: bind
        source: /home/debian/.config/appdata/radarr
        target: /config
        bind:
          create_host_path: true
      - type: bind
        source: /storage/data/
        target: /storage
        bind:
          create_host_path: true
  sonarr:
    container_name: sonarr
    environment:
      PGID: "1000"
      PUID: "1000"
      TZ: Europe/xxxx
    image: lscr.io/linuxserver/sonarr
    logging:
      driver: json-file
      options:
        max-file: "10"
        max-size: 200k
    depends_on:
      - traefik
    networks:
      default: 
    labels:
      - traefik.enable=true
      - traefik.http.routers.sonarr.entryPoints=websecure
      - traefik.http.routers.sonarr.tls.certResolver=letsEncrypt
      - traefik.http.routers.sonarr.rule=Host(`sonarr.example.com`)
      - traefik.http.services.sonarr.loadbalancer.server.port=8989
      - traefik.docker.network=web
      - traefik.port=8989
    ports:
      - mode: ingress
        target: 8989
        published: "8989"
        protocol: tcp
    restart: unless-stopped
    volumes:
      - type: bind
        source: /etc/localtime
        target: /etc/localtime
        read_only: true
        bind:
          create_host_path: true
      - type: bind
        source: /home/debian/.config/appdata/sonarr
        target: /config
        bind:
          create_host_path: true
      - type: bind
        source: /storage/data/
        target: /storage
        bind:
          create_host_path: true
  watchtower:
    container_name: watchtower
    environment:
      REPO_PASS: ""
      REPO_USER: ""
      TZ: Europe/xxxx
      WATCHTOWER_CLEANUP: "true"
      WATCHTOWER_INCLUDE_STOPPED: "false"
      WATCHTOWER_MONITOR_ONLY: "false"
      WATCHTOWER_NOTIFICATION_TEMPLATE: "{{range .}}{{.Message}}{{println}}{{end}}"
      WATCHTOWER_NOTIFICATION_URL: ""
      WATCHTOWER_NOTIFICATIONS: shoutrrr
      WATCHTOWER_NOTIFICATIONS_LEVEL: info
      WATCHTOWER_SCHEDULE: 0 0 4 * * *
      WATCHTOWER_TIMEOUT: 10s
    image: ghcr.io/containrrr/watchtower
    logging:
      driver: json-file
      options:
        max-file: "10"
        max-size: 200k
    networks:
      default: 
    restart: unless-stopped
    volumes:
      - type: bind
        source: /etc/localtime
        target: /etc/localtime
        read_only: true
        bind:
          create_host_path: true
      - type: bind
        source: /var/run/docker.sock
        target: /var/run/docker.sock
        bind:
          create_host_path: true
      - type: bind
        source: /storage/data/
        target: /storage
        bind:
          create_host_path: true
networks:
  default:
    name: web

I have a new error:

Reading the request body timed out due to data arriving too slowly

Is that progress? (I’m importing 1000+ movies, if that can help)

There was a misconfiguration in jackett with the base URL override. Import went fine after modification

This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.