Could not deserialize the response body stream
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 57/100
Línea de trabajo
Start with the generated API client deserialization at ImmichFrame.Core/obj/immich-openapi-specsClient.cs and the asset-fetching path in ImmichFrame.Core/Logic/Pool/AllAssetsPool.cs; inspect how the Immich response represents duration for images. The report reproduces the failure with a Docker/web deployment and includes the exception. Done when the response no longer fails to deserialize and asset loading works for images with duration 0:00:00.00000.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Version
1.0.35.0
Deployment Method
Docker/web
Description
When running ImmichFrame in Docker via web, it will give an error Looks like your immich-server is offline or you misconfigured immichFrame. Check the container logs.
After investigation it turns out ImmichFrame gives an error on the Duration of files returned by Immich. Newtonsoft.Json.JsonReaderException: Could not convert string to integer: 0:00:00.00000. Path '[0].duration' All static files (images) have a duration of 0:00:00.00000. I don't know why this happens since it happened without updating. But after updating (both Immich and ImmichFrame) the error remains.
Reproduction
Install the Docker image, run and visit ImmichFrame. The error shows.
Expectations
No response
Configuration
General:
AuthenticationSecret: null
DownloadImages: false
RenewImagesDuration: 30
RefreshAlbumPeopleInterval: 1
PhotoDateFormat: dd-MM-yyyy
ImageLocationFormat: 'City,State,Country'
#WeatherApiKey: ''
UnitSystem: metric
#WeatherLatLong: '40.730610,-73.935242'
#Webhook: null
Language: en
Interval: 45
TransitionDuration: 2
ShowClock: false
ClockFormat: 'hh:mm'
ClockDateFormat: 'eee, MMM d'
ShowProgressBar: false
ShowPhotoDate: true
ShowImageDesc: true
ShowPeopleDesc: false
ShowAlbumName: true
ShowImageLocation: true
PrimaryColor: '#dce7ea'
SecondaryColor: '#000000'
Style: 'blur'
BaseFontSize: 26px
ShowWeatherDescription: true
WeatherIconUrl: 'https://openweathermap.org/img/wn/{IconId}.png'
ImageZoom: false
ImagePan: false
ImageFill: true
PlayAudio: false
Layout: splitview
Accounts:
- ImmichServerUrl: 'https://immich.domain.local'
# Exactly one of ApiKey or ApiKeyFile must be set.
ApiKey: "xxxxxkeyxxxxx"
# ApiKeyFile: "/path/to/api.key"
ImagesFromDate: '2010-01-01'
ShowMemories: false
ShowFavorites: false
ShowArchived: false
ShowVideos: false
ImagesFromDays: null
ImagesUntilDate: null
Rating: null
#Albums:
# - UUID
#ExcludedAlbums:
# - UUID
#People:
# - UUID
#Tags:
# - "tag"
Logs
26-07-11 11:16:09 fail: Microsoft.AspNetCore.Server.Kestrel[13] Connection id "0HNMV5K5IPKBP", Request id "0HNMV5K5IPKBP:00000001": An unhandled exception was thrown by the application. HTTP Response: ImmichFrame.Core.Api.ApiException: Could not deserialize the response body stream as System.Collections.Generic.ICollection`1[[ImmichFrame.Core.Api.AssetResponseDto, ImmichFrame.Core, Version=1.0.35.0, Culture=neutral, PublicKeyToken=null]]. Status: 200 Response: ---> Newtonsoft.Json.JsonReaderException: Could not convert string to integer: 0:00:00.00000. Path '[0].duration', line 1, position 682. at Newtonsoft.Json.JsonReader.ReadInt32String(String s) at Newtonsoft.Json.JsonTextReader.FinishReadQuotedNumber(ReadType readType) at Newtonsoft.Json.JsonTextReader.ReadNumberValue(ReadType readType) at Newtonsoft.Json.JsonTextReader.ReadAsInt32() 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.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 Newtonsoft.Json.JsonSerializer.Deserialize[T](JsonReader reader) at ImmichFrame.Core.Api.ImmichApi.ReadObjectResponseAsync[T](HttpResponseMessage response, IReadOnlyDictionary`2 headers, CancellationToken cancellationToken) in /source/ImmichFrame.Core/obj/immich-openapi-specsClient.cs:line 24671 --- End of inner exception stack trace --- at ImmichFrame.Core.Api.ImmichApi.ReadObjectResponseAsync[T](HttpResponseMessage response, IReadOnlyDictionary`2 headers, CancellationToken cancellationToken) in /source/ImmichFrame.Core/obj/immich-openapi-specsClient.cs:line 24679 at ImmichFrame.Core.Api.ImmichApi.SearchRandomAsync(RandomSearchDto body, CancellationToken cancellationToken) in /source/ImmichFrame.Core/obj/immich-openapi-specsClient.cs:line 16083 at ImmichFrame.Core.Logic.Pool.AllAssetsPool.GetAssets(Int32 requested, CancellationToken ct) in /source/ImmichFrame.Core/Logic/Pool/AllAssetsPool.cs:line 63 at ImmichFrame.Core.Logic.PooledImmichFrameLogic.GetAssets() in /source/ImmichFrame.Core/Logic/PooledImmichFrameLogic.cs:line 75 at ImmichFrame.Core.Logic.AccountSelection.TotalAccountImagesSelectionStrategy.<>c__DisplayClass9_0.<<GetAssets>b__2>d.MoveNext() in /source/ImmichFrame.Core/Logic/AccountSelection/TotalAccountImagesSelectionStrategy.cs:line 61 --- End of stack trace from previous location --- at ImmichFrame.Core.Logic.AccountSelection.TotalAccountImagesSelectionStrategy.GetAssets() in /source/ImmichFrame.Core/Logic/AccountSelection/TotalAccountImagesSelectionStrategy.cs:line 66 at ImmichFrame.Core.Logic.MultiImmichFrameLogicDelegate.GetAssets() in /source/ImmichFrame.Core/Logic/MultiImmichFrameLogicDelegate.cs:line 35 at ImmichFrame.WebApi.Controllers.AssetController.GetAssets(String clientIdentifier) in /source/ImmichFrame.WebApi/Controllers/AssetController.cs:line 42 at lambda_method11(Closure, Object) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) 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.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at CustomAuthenticationMiddleware.InvokeAsync(HttpContext context) in /source/ImmichFrame.WebApi/Helpers/CustomAuthenticationMiddleware.cs:line 23 at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
Pre-Submission Checklist
-
This is a bug report and not a feature request
-
I have provided all of the required information to reproduce the bug (config, logs, etc.)
-
I have checked for related issues and checked the documentation
- Lenguaje dominante
- C#
- Estrellas
- 2.4k
- Forks
- 121
- Merge medio
- 18 d 20 h
- PR fusionados (30 d)
- 1
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de immichFrame/ImmichFrame
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
immichFrame/ImmichFrame#735 ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 56/100
immichFrame/ImmichFrame#733 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 76/100
immichFrame/ImmichFrame#732 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 22/100
immichFrame/ImmichFrame#731 · 1 reacción ·
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
immichFrame/ImmichFrame#729 ·
Todos los issues de immichFrame/ImmichFrame
Issues similares
-
Feature needs response
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Adyen/adyen-dotnet-api-library#1907 ·
Los mantenedores suelen responder en 5 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
dimitar-radenkov/Pointframe#318 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
DotHarness/dotcraft#546 ·
Los mantenedores suelen responder en 1 día
-
a-corriger bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
christian-raj/S-Aloha#303 · 1 comentario ·
-
Input editor says "Apply Changes" even when no changes have been made.Posiblemente ocupada @hcooper la tomó hoy. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
MobiFlight/MobiFlight-Connector#3526 ·
Los mantenedores suelen responder en 1 día