Skip to content

Multiple accounts - Asset requested from wrong account #648

@noahingwersen

Description

@noahingwersen

Version

v1.0.33.0

Deployment Method

Web

Description

Configuring ImmichFrame with two accounts occasionally shows "Looks like your immich-server is offline or you misconfigured immichFrame. Check the container logs."

The logs show a 400 response for the asset on one account, but if I swap the immich url to the other account it works. So it seems like ImmichFrame is requesting an asset from the wrong account.

For example my logs show this:

immich-frame  | 26-05-20 20:14:54 info: System.Net.Http.HttpClient.ImmichApiAccountClient.ClientHandler[100] Sending HTTP request GET http://immich-server2:2283/api/assets/7b73c9ed-4ec3-4102-9ed3-08db5aa98fb6/thumbnail?key=&size=preview
immich-frame  | 26-05-20 20:14:54 info: System.Net.Http.HttpClient.ImmichApiAccountClient.ClientHandler[101] Received HTTP response headers after 48.1182ms - 400

But if I go to "http://immich-server1:2283/api/assets/7b73c9ed-4ec3-4102-9ed3-08db5aa98fb6/thumbnail?key=&size=preview" instead of immich-server2, I get a 200 response with the image

I also don't see any issues at all if I comment out one of the accounts. All the images display correctly.

I looked through the issues and these seem similar, but not identical
#547
#494

Reproduction

Run docker compose up -d with the provided files

Access ImmichFrame on the web and cycle through the photos. Eventually I got the issue described above

Expectations

No response

Configuration

compose.yml

services:
  immich-frame:
    image: ghcr.io/immichframe/immichframe:v1.0.33.0
    container_name: immich-frame
    user: 1000:1000
    ports:
      - 8080:8080
    environment:
      TZ: "America/New_York"
    volumes:
      - ./immich-frame/settings.yml:/app/Config/Settings.yml
      - ./api-keys:/app/Config/api-keys
    restart: unless-stopped


Settings.yml

General:
  AuthenticationSecret: null
  ImageLocationFormat: 'City, State, Country'
  UnitSystem: imperial
  Interval: 45
  TransitionDuration: 2
  BaseFontSize: 17px
  ShowWeatherDescription: false
  ImageZoom: false
  Layout: single
Accounts:
  - ImmichServerUrl: http://immich-server1:2283
    ApiKeyFile: "/app/Config/api-keys/server1.key"
    ImagesFromDate: null
    ShowMemories: false
    ShowFavorites: false
    ShowArchived: true
    ShowVideos: false
    ImagesFromDays: null
    ImagesUntilDate: null
    Albums:
      - ee488ac7-2f99-4fe8-8167-3b81364998ab

  - ImmichServerUrl: http://immich-server2:2283
    ApiKeyFile: "/app/Config/api-keys/server2.key"
    ImagesFromDate: null
    ShowMemories: false
    ShowFavorites: false
    ShowArchived: true
    ShowVideos: false
    ImagesFromDays: null
    ImagesUntilDate: null
    Albums:
      - ce5103ec-ad49-4036-8881-1ceec5f2834d

Logs

immich-frame  | 26-05-20 20:14:47 info: System.Net.Http.HttpClient.ImmichApiAccountClient.LogicalHandler[100] Start processing HTTP request GET http://immich-server1:2283/api/assets/4dc43f10-3a4a-4d99-b0db-e97e0c76e40b
immich-frame  | 26-05-20 20:14:47 info: System.Net.Http.HttpClient.ImmichApiAccountClient.ClientHandler[100] Sending HTTP request GET http://immich-server1:2283/api/assets/4dc43f10-3a4a-4d99-b0db-e97e0c76e40b
immich-frame  | 26-05-20 20:14:47 info: System.Net.Http.HttpClient.ImmichApiAccountClient.ClientHandler[101] Received HTTP response headers after 15.1978ms - 200
immich-frame  | 26-05-20 20:14:47 info: System.Net.Http.HttpClient.ImmichApiAccountClient.LogicalHandler[101] End processing HTTP request after 15.4614ms - 200
immich-frame  | 26-05-20 20:14:47 info: System.Net.Http.HttpClient.ImmichApiAccountClient.ClientHandler[101] Received HTTP response headers after 16.3402ms - 200
immich-frame  | 26-05-20 20:14:47 info: System.Net.Http.HttpClient.ImmichApiAccountClient.LogicalHandler[101] End processing HTTP request after 17.1784ms - 200
immich-frame  | 26-05-20 20:14:47 info: System.Net.Http.HttpClient.ImmichApiAccountClient.LogicalHandler[100] Start processing HTTP request GET http://immich-server1:2283/api/albums?assetId=77ab845d-cae8-403b-8928-6a1bc8578a0a
immich-frame  | 26-05-20 20:14:47 info: System.Net.Http.HttpClient.ImmichApiAccountClient.ClientHandler[100] Sending HTTP request GET http://immich-server1:2283/api/albums?assetId=77ab845d-cae8-403b-8928-6a1bc8578a0a
immich-frame  | 26-05-20 20:14:47 info: System.Net.Http.HttpClient.ImmichApiAccountClient.ClientHandler[101] Received HTTP response headers after 32.4077ms - 200
immich-frame  | 26-05-20 20:14:47 info: System.Net.Http.HttpClient.ImmichApiAccountClient.LogicalHandler[101] End processing HTTP request after 32.6805ms - 200
immich-frame  | 26-05-20 20:14:47 info: System.Net.Http.HttpClient.ImmichApiAccountClient.LogicalHandler[100] Start processing HTTP request GET http://immich-server1:2283/api/assets/77ab845d-cae8-403b-8928-6a1bc8578a0a
immich-frame  | 26-05-20 20:14:47 info: System.Net.Http.HttpClient.ImmichApiAccountClient.ClientHandler[100] Sending HTTP request GET http://immich-server1:2283/api/assets/77ab845d-cae8-403b-8928-6a1bc8578a0a
immich-frame  | 26-05-20 20:14:47 info: System.Net.Http.HttpClient.ImmichApiAccountClient.ClientHandler[101] Received HTTP response headers after 15.8271ms - 200
immich-frame  | 26-05-20 20:14:47 info: System.Net.Http.HttpClient.ImmichApiAccountClient.LogicalHandler[101] End processing HTTP request after 15.9693ms - 200
immich-frame  | 26-05-20 20:14:54 info: System.Net.Http.HttpClient.ImmichApiAccountClient.LogicalHandler[100] Start processing HTTP request GET http://immich-server2:2283/api/assets/7b73c9ed-4ec3-4102-9ed3-08db5aa98fb6/thumbnail?key=&size=preview
immich-frame  | 26-05-20 20:14:54 info: System.Net.Http.HttpClient.ImmichApiAccountClient.ClientHandler[100] Sending HTTP request GET http://immich-server2:2283/api/assets/7b73c9ed-4ec3-4102-9ed3-08db5aa98fb6/thumbnail?key=&size=preview
immich-frame  | 26-05-20 20:14:54 info: System.Net.Http.HttpClient.ImmichApiAccountClient.ClientHandler[101] Received HTTP response headers after 48.1182ms - 400
immich-frame  | 26-05-20 20:14:54 info: System.Net.Http.HttpClient.ImmichApiAccountClient.LogicalHandler[101] End processing HTTP request after 48.3124ms - 400
immich-frame  | 26-05-20 20:14:54 fail: Microsoft.AspNetCore.Server.Kestrel[13] Connection id "0HNLMPNR6D5Q9", Request id "0HNLMPNR6D5Q9:00000006": An unhandled exception was thrown by the application. HTTP Response:   {"message":"Not found or no asset.view access","error":"Bad Request","statusCode":400,"correlationId":"0zxq9d8i"}  ImmichFrame.Core.Api.ApiException: The HTTP status code of the response was not expected (400).  Status: 400 Response:  {"message":"Not found or no asset.view access","error":"Bad Request","statusCode":400,"correlationId":"0zxq9d8i"}
	at ImmichFrame.Core.Api.ImmichApi.ViewAssetAsync(Guid id, String key, Nullable`1 size, CancellationToken cancellationToken) in /source/ImmichFrame.Core/obj/immich-openapi-specsClient.cs:line 4115
	at ImmichFrame.Core.Logic.PooledImmichFrameLogic.GetImageAsset(Guid id) in /source/ImmichFrame.Core/Logic/PooledImmichFrameLogic.cs:line 143
	at ImmichFrame.Core.Logic.PooledImmichFrameLogic.GetAsset(Guid id, Nullable`1 assetType, String rangeHeader) in /source/ImmichFrame.Core/Logic/PooledImmichFrameLogic.cs:line 96
	at ImmichFrame.WebApi.Controllers.AssetController.GetAsset(Guid id, String clientIdentifier, Nullable`1 assetType) in /source/ImmichFrame.WebApi/Controllers/AssetController.cs:line 87
	at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions