Jellyfin Forum
SOLVED: Consistent Failures Fetching Metadata from TheMovieDB - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: SOLVED: Consistent Failures Fetching Metadata from TheMovieDB (/t-solved-consistent-failures-fetching-metadata-from-themoviedb)

Pages: 1 2


Consistent Failures Fetching Metadata from TheMovieDB - nxl4 - 2024-05-26

For the past week, all attempts to fetch metadata for TV shows have been failing, with the error logs consistently indicating the unavailability of TheMovieDB API. Here's an example from this morning:

Code:
[2024-05-26 04:58:58.182 -05:00] [ERR] [81] MediaBrowser.Providers.TV.SeriesMetadataService: Error in "TheMovieDb"
System.Net.Http.HttpRequestException: Resource temporarily unavailable (api.themoviedb.org:443)

Is there a current known issue with this service in Jellyfin? And, if so, is there a workaround that people are currently using (e.g. a different API)?


RE: Consistent Failures Fetching Metadata from TheMovieDB - TheDreadPirate - 2024-05-26

On the command line are you able to ping themoviedb.org?


RE: Consistent Failures Fetching Metadata from TheMovieDB - nxl4 - 2024-05-26

(2024-05-26, 03:57 PM)TheDreadPirate Wrote: On the command line are you able to ping themoviedb.org?

Yeah, ping shows the host being responsive:

Code:
PING api.themoviedb.org (52.85.247.33) 56(84) bytes of data.
64 bytes from server-52-85-247-33.ord51.r.cloudfront.net (52.85.247.33): icmp_seq=1 ttl=247 time=54.5 ms
64 bytes from server-52-85-247-33.ord51.r.cloudfront.net (52.85.247.33): icmp_seq=2 ttl=247 time=56.0 ms
64 bytes from server-52-85-247-33.ord51.r.cloudfront.net (52.85.247.33): icmp_seq=3 ttl=247 time=57.2 ms

And, nmap shows port 443 being open for HTTPS service:

Code:
Starting Nmap 7.80 ( https://nmap.org ) at 2024-05-26 15:04 EDT
Nmap scan report for api.themoviedb.org (52.85.247.30)
Host is up (0.057s latency).
Other addresses for api.themoviedb.org (not scanned): 52.85.247.81 52.85.247.33 52.85.247.69 2600:9000:2211:7600:c:174a:c400:93a1 2600:9000:2211:ea00:c:174a:c400:93a1 2600:9000:2211:b200:c:174a:c400:93a1 2600:9000:2211:f600:c:174a:c400:93a1 2600:9000:2211:9e00:c:174a:c400:93a1 2600:9000:2211:3200:c:174a:c400:93a1 2600:9000:2211:ac00:c:174a:c400:93a1 2600:9000:2211:9a00:c:174a:c400:93a1
rDNS record for 52.85.247.30: server-52-85-247-30.ord51.r.cloudfront.net
Not shown: 997 filtered ports
PORT    STATE  SERVICE
53/tcp  closed domain
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 6.37 seconds

It's pretty strange, especially if other users aren't seeing the same kind of error.


RE: Consistent Failures Fetching Metadata from TheMovieDB - TheDreadPirate - 2024-05-26

Do you have a pihole or some other DNS based adblocker on your network?


RE: Consistent Failures Fetching Metadata from TheMovieDB - nxl4 - 2024-05-26

(2024-05-26, 07:37 PM)TheDreadPirate Wrote: Do you have a pihole or some other DNS based adblocker on your network?

Nope, nothing is between the NAS on which Jellyfin is hosted and my router. I just realized that this must be a networking issue on my end though, although I'm at a loss. The ping and nmap results I showed above were directly from my laptop. When I try and run a ping from an SSH into my NAS, it fails to resolve the host name:

Code:
ping: api.themoviedb.org: Temporary failure in name resolution

In fact, it appears that I get the same error when trying to ping any host name from my NAS. However, if I ping an IP address directly, this works fine. Definitely a "me" issue, then, and not anything that's even specific to Jellyfin.

EDIT: Aaand, it turns out that rebooting the server fixed the DNS issue!


RE: Consistent Failures Fetching Metadata from TheMovieDB - TheDreadPirate - 2024-05-26

Restart the NAS, restart the router?


RE: Consistent Failures Fetching Metadata from TheMovieDB - nxl4 - 2024-05-26

(2024-05-26, 08:39 PM)TheDreadPirate Wrote: Restart the NAS, restart the router?

Hah, posted just as I was editing my last one. A reboot did the trick. Somehow, in the last few months of continuous uptime, my DNS resolution got screwy.


RE: Consistent Failures Fetching Metadata from TheMovieDB - DaveR1974 - 2024-08-01

For the last few weeks (didn't notice until the day of the big IT issue, so I first thought it was that), our Jellyfin server has not been getting any Metadata for movies or TV serials.
I updated the Jellyfin server, and made sure my OMV7 machine (that Jellyfin is installed on) was updated, but this is still ongoing.
Rebooting the server and router has not fixed the issue.
I tried to force Jellyfin to update the Metadata manually for each title (using the 3 dot menu on said titles) and I see the same "Resource temporarily unavailable" errors mentioned by the OP in the log, hence posting here.
Here is the result of one of those attempts (full log attached below)...

Quote:[2024-08-01 13:10:39.916 +01:00] [INF] [18] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/data/movies/Movies/A Quiet Place Day One (2024) [imdbid - tt13433802] 2160p DV Atmos.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2024-08-01 13:10:40.109 +01:00] [ERR] [3] MediaBrowser.Providers.Movies.MovieMetadataService: Error in "TheMovieDb"
System.Net.Http.HttpRequestException: Resource temporarily unavailable (api.themoviedb.org:443)
---> System.Net.Sockets.SocketException (11): Resource temporarily unavailable
  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|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
  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(QueueItem queueItem)
  at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken)
  at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
  at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
  at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
  at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
  at TMDbLib.Rest.RestRequest.SendInternal(HttpMethod method, CancellationToken cancellationToken)
  at TMDbLib.Rest.RestRequest.Get[T](CancellationToken cancellationToken)
  at TMDbLib.Rest.RestRequestExtensions.GetOfT[T](RestRequest request, CancellationToken cancellationToken)
  at TMDbLib.Client.TMDbClient.GetConfigAsync()
  at MediaBrowser.Providers.Plugins.Tmdb.TmdbClientManager.EnsureClientConfigAsync()
  at MediaBrowser.Providers.Plugins.Tmdb.TmdbClientManager.FindByExternalIdAsync(String externalId, FindExternalSource source, String language, CancellationToken cancellationToken)
  at MediaBrowser.Providers.Plugins.Tmdb.Movies.TmdbMovieProvider.GetMetadata(MovieInfo info, CancellationToken cancellationToken)
  at MediaBrowser.Providers.Manager.MetadataService
2.ExecuteRemoteProviders(MetadataResult1 temp, String logName, Boolean replaceData, TIdType id, IEnumerable1 providers, CancellationToken cancellationToken)

Pinging api.themoviedb.org from the OMV7 machine (via SSH) showed my OMV7 server is able to access without issue.
Finger crossed someone can figure this out.


.zip   log_20240801.zip (Size: 75.24 KB / Downloads: 42)


RE: Consistent Failures Fetching Metadata from TheMovieDB - TheDreadPirate - 2024-08-01

Did you enable IPv6 in Jellyfin? But your server/router isn't fully setup for IPv6?

It also looks like you are running Tailscale. Did you make any changes with Tailscale that would prevent Jellyfin from accessing the Internet while Tailscale is enabled?


RE: Consistent Failures Fetching Metadata from TheMovieDB - DaveR1974 - 2024-08-01

IPv6 is disabled as our ISP does not yet support it.
No changes have been made to Tailscale, and the Metadata collection was working with it running. It was only about 2 weeks ago that it stopped.
I will try to disable Tailscale for the time being, as it is only used when travelling, and we're not due to travel again for a wee while.

Update... Tailscale is off, but Metadata is still not updating. Latest log attached below.
Here is the exert...

Quote:[2024-08-01 21:43:11.176 +01:00] [INF] [54] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/data/movies/Movies/A Quiet Place Day One (2024) [imdbid - tt13433802] 2160p DV Atmos.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2024-08-01 21:43:31.249 +01:00] [ERR] [54] MediaBrowser.Providers.Movies.MovieMetadataService: Error in "TheMovieDb"
System.Net.Http.HttpRequestException: Resource temporarily unavailable (api.themoviedb.org:443)
---> System.Net.Sockets.SocketException (11): Resource temporarily unavailable
  at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
  at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
  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(QueueItem queueItem)
  at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken)
  at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
  at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
  at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
  at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
  at TMDbLib.Rest.RestRequest.SendInternal(HttpMethod method, CancellationToken cancellationToken)
  at TMDbLib.Rest.RestRequest.Get[T](CancellationToken cancellationToken)
  at TMDbLib.Rest.RestRequestExtensions.GetOfT[T](RestRequest request, CancellationToken cancellationToken)
  at TMDbLib.Client.TMDbClient.GetConfigAsync()
  at MediaBrowser.Providers.Plugins.Tmdb.TmdbClientManager.EnsureClientConfigAsync()
  at MediaBrowser.Providers.Plugins.Tmdb.TmdbClientManager.FindByExternalIdAsync(String externalId, FindExternalSource source, String language, CancellationToken cancellationToken)
  at MediaBrowser.Providers.Plugins.Tmdb.Movies.TmdbMovieProvider.GetMetadata(MovieInfo info, CancellationToken cancellationToken)
  at MediaBrowser.Providers.Manager.MetadataService
2.ExecuteRemoteProviders(MetadataResult1 temp, String logName, Boolean replaceData, TIdType id, IEnumerable1 providers, CancellationToken cancellationToken)
[2024-08-01 21:43:51.274 +01:00] [ERR] [52] MediaBrowser.Providers.Movies.MovieMetadataService: Error in "The Open Movie Database"
System.Net.Http.HttpRequestException: Resource temporarily unavailable (www.omdbapi.com:443)
---> System.Net.Sockets.SocketException (11): Resource temporarily unavailable
  at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
  at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
  at Jellyfin.Networking.HappyEyeballs.HttpClientExtension.AttemptConnection(AddressFamily addressFamily, SocketsHttpConnectionContext context, CancellationToken cancellationToken)
  at Jellyfin.Networking.HappyEyeballs.HttpClientExtension.OnConnect(SocketsHttpConnectionContext context, CancellationToken cancellationToken)
  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(QueueItem queueItem)
  at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken)
  at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
  at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
  at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
  at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
  at Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler.<SendCoreAsync>g__Core|5_0(HttpRequestMessage request, Boolean useAsync, CancellationToken cancellationToken)
  at Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler.<SendCoreAsync>g__Core|5_0(HttpRequestMessage request, Boolean useAsync, CancellationToken cancellationToken)
  at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
  at System.Net.Http.Json.HttpClientJsonExtensions.<FromJsonAsyncCore>g__Core|12_0[TValue,TJsonOptions](HttpClient client, Task
1 responseTask, Boolean usingResponseHeadersRead, CancellationTokenSource linkedCTS, Func4 deserializeMethod, TJsonOptions jsonOptions, CancellationToken cancellationToken)
  at MediaBrowser.Providers.Plugins.Omdb.OmdbProvider.EnsureItemInfo(String imdbId, CancellationToken cancellationToken)
  at MediaBrowser.Providers.Plugins.Omdb.OmdbProvider.GetRootObject(String imdbId, CancellationToken cancellationToken)
  at MediaBrowser.Providers.Plugins.Omdb.OmdbProvider.Fetch[T](MetadataResult
1 itemResult, String imdbId, String language, String country, CancellationToken cancellationToken)
  at MediaBrowser.Providers.Plugins.Omdb.OmdbItemProvider.GetResult[T](ItemLookupInfo info, CancellationToken cancellationToken)
  at MediaBrowser.Providers.Manager.MetadataService2.ExecuteRemoteProviders(MetadataResult1 temp, String logName, Boolean replaceData, TIdType id, IEnumerable`1 providers, CancellationToken cancellationToken)


.zip   log_20240801a.zip (Size: 160.81 KB / Downloads: 36)