Skip to content

JsonReaderException: 'Could not convert string to DateTime' #522

Closed
@s0llvan

Description

This issue respects the following points:

  • This is a bug, not a question or a configuration issue; Please visit our forum or chat rooms first to troubleshoot with volunteers, before creating a report. The links can be found here.
  • This issue is not already reported on GitHub (I've searched it).
  • I'm using an up to date version of Jellyfin Server stable, unstable or master; We generally do not support previous older versions. If possible, please update to the latest version before opening an issue.
  • I agree to follow Jellyfin's Code of Conduct.
  • This report addresses only a single issue; If you encounter multiple issues, kindly create separate reports for each one.

Description of the bug

I haven't used Jellyfin for several weeks.
I pulled the latest Docker image and updated it.
I added movies and series, then tried to edit the metadata using 'Identify' function but it didn't work, and I saw these errors in the logs.
I tried completely reinstalling the container from scratch and noticed the same errors in the logs.
Same errors with any metadata providers.

Reproduction steps

Install server with docker-compose.yml

OR

Identify any show or movie

What is the current bug behavior?

Metadata doesn't updated

What is the expected correct behavior?

Metadata updated

Jellyfin Server version

10.10.0+

Specify commit id

No response

Specify unstable release number

No response

Specify version number

No response

Specify the build version

10.10.3

Environment

- OS: Debian 12
- Linux Kernel: 6.6
- Virtualization: Docker
- Clients: Browser
- Browser: Firefox, Chromium
- FFmpeg Version: unknown
- Playback Method: /
- Hardware Acceleration: none
- GPU Model: none
- Plugins: none
- Reverse Proxy: none
- Base URL: none
- Networking: Host
- Storage:local

Jellyfin logs

jellyfin  | [00:16:31] [INF] [21] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting /usr/lib/jellyfin-ffmpeg/ffprobe with args -analyzeduration 200M -probesize 1G -i file:"/media/external/Series/AVC/Kaamelott/Saison 1/Kaamelott.S01E66.FRENCH.1080p.BluRay.x264.AC3-Dam.mkv" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format
jellyfin  | [00:16:31] [ERR] [22] MediaBrowser.Providers.TV.SeriesMetadataService: Error in TheMovieDb
jellyfin  | Newtonsoft.Json.JsonReaderException: Could not convert string to DateTime: 2020-08-19 12:35:02 UTC. Path 'videos.results[0].published_at', line 1, position 35406.
jellyfin  |    at Newtonsoft.Json.JsonReader.ReadDateTimeString(String s)
jellyfin  |    at Newtonsoft.Json.JsonTextReader.FinishReadQuotedStringValue(ReadType readType)
jellyfin  |    at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter)
jellyfin  |    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
jellyfin  |    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
jellyfin  |    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
jellyfin  |    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
jellyfin  |    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
jellyfin  |    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
jellyfin  |    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
jellyfin  |    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
jellyfin  |    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
jellyfin  |    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
jellyfin  |    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
jellyfin  |    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
jellyfin  |    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
jellyfin  |    at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
jellyfin  |    at TMDbLib.Utilities.Serializer.TMDbJsonSerializer.Deserialize(Stream source, Type type)
jellyfin  |    at TMDbLib.Utilities.Serializer.SerializerExtensions.Deserialize[T](ITMDbSerializer serializer, Stream source)
jellyfin  |    at TMDbLib.Rest.RestResponse`1.GetDataObject()
jellyfin  |    at TMDbLib.Client.TMDbClient.GetTvShowAsync(Int32 id, TvShowMethods extraMethods, String language, String includeImageLanguage, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Providers.Plugins.Tmdb.TmdbClientManager.GetSeriesAsync(Int32 tmdbId, String language, String imageLanguages, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Providers.Plugins.Tmdb.TV.TmdbSeriesProvider.GetMetadata(SeriesInfo info, CancellationToken cancellationToken)
jellyfin  |    at MediaBrowser.Providers.Manager.MetadataService`2.ExecuteRemoteProviders(MetadataResult`1 temp, String logName, Boolean replaceData, TIdType id, IEnumerable`1 providers, CancellationToken cancellationToken)
jellyfin  | [00:16:31] [INF] [33] Emby.Server.Implementations.MediaEncoder.EncodingManager: Skipping chapter image extraction for Kaamelott.S01E66.FRENCH as the average chapter duration 0 was lower than the minimum threshold 10000000

FFmpeg logs

[2024-12-07 00:03:08.172 +01:00] [INF] [31] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/media/external/Movies/AVC/Good.Boys.2019.MULTi.TRUEFRENCH.1080p.HDLight.x264.AC3-EXTREME.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2024-12-07 00:03:08.516 +01:00] [ERR] [24] MediaBrowser.Providers.Movies.MovieMetadataService: Error in "TheMovieDb"
Newtonsoft.Json.JsonReaderException: Could not convert string to DateTime: 2021-05-10 12:30:00 UTC. Path 'videos.results[0].published_at', line 1, position 69678.
   at Newtonsoft.Json.JsonReader.ReadDateTimeString(String s)
   at Newtonsoft.Json.JsonTextReader.FinishReadQuotedStringValue(ReadType readType)
   at Newtonsoft.Json.JsonTextReader.ReadStringValue(ReadType readType)
   at Newtonsoft.Json.JsonTextReader.ReadAsDateTime()
   at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType)
   at TMDbLib.Utilities.Serializer.TMDbJsonSerializer.Deserialize(Stream source, Type type)
   at TMDbLib.Utilities.Serializer.SerializerExtensions.Deserialize[T](ITMDbSerializer serializer, Stream source)
   at TMDbLib.Rest.RestResponse`1.GetDataObject()
   at TMDbLib.Client.TMDbClient.GetMovieAsync(String imdbId, String language, String includeImageLanguage, MovieMethods extraMethods, CancellationToken cancellationToken)
   at TMDbLib.Client.TMDbClient.GetMovieAsync(Int32 movieId, String language, String includeImageLanguage, MovieMethods extraMethods, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Plugins.Tmdb.TmdbClientManager.GetMovieAsync(Int32 tmdbId, String language, String imageLanguages, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Plugins.Tmdb.Movies.TmdbMovieProvider.GetMetadata(MovieInfo info, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Manager.MetadataService`2.ExecuteRemoteProviders(MetadataResult`1 temp, String logName, Boolean replaceData, TIdType id, IEnumerable`1 providers, CancellationToken cancellationToken)

Client / Browser logs

No response

Relevant screenshots or videos

Screencast.from.2024-12-07.00-40-13.webm

Additional information

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions