#Immich strange behaviour on Samsung (Galaxy A53) phone

1 messages · Page 1 of 1 (latest)

green turret
#

My GFs Phone does not sync any albums or timeline.

When refreshing albums/timeline, the logs shows following errors:

Title: PlatformDispatcher - Catch all
Details: Null check operator used on a null value

Stack Trace:
#0      AssetResponseDto.fromJson (package:openapi/model/asset_response_dto.dart:291)
#1      AssetResponseDto.listFromJson (package:openapi/model/asset_response_dto.dart:324)
#2      AlbumResponseDto.fromJson (package:openapi/model/album_response_dto.dart:198)
#3      ApiClient.fromJson (package:openapi/api_client.dart:204)
#4      ApiClient.deserialize (package:openapi/api_client.dart:158)
<asynchronous suspension>
#5      AlbumsApi.getAlbumInfo (package:openapi/api/albums_api.dart:278)
<asynchronous suspension>
#6      ApiRepository.checkNull (package:immich_mobile/repositories/api.repository.dart:5)
<asynchronous suspension>
#7      AlbumApiRepository.get (package:immich_mobile/repositories/album_api.repository.dart:22)
<asynchronous suspension>
#8      SyncService._addAlbumFromServer (package:immich_mobile/services/sync.service.dart:452)
<asynchronous suspension>
#9      diffSortedLists (package:immich_mobile/utils/diff.dart:25)
<asynchronous suspension>
#10     SyncService._syncRemoteAlbumsToDb (package:immich_mobile/services/sync.service.dart:323)
<asynchronous suspension>
#11     AlbumService.refreshRemoteAlbums (package:immich_mobile/services/album.service.dart:190)
<asynchronous suspension>
#12     AlbumNotifier.refreshRemoteAlbums (package:immich_mobile/providers/album/album.provider.dart:35)
<asynchronous suspension>
#13     AlbumsPage.build.<anonymous closure> (package:immich_mobile/pages/albums/albums.page.dart:94)
<asynchronous suspension>
#14     RefreshIndicatorState._show.<anonymous closure>.<anonymous closure> (package:flutter/src/material/refresh_indicator.dart:503)
<asynchronous suspension>

App Version: 1.125.1 build.177
Server Version: 1.125.2

I do not experience these errors on my Pixel Pro 8

little brookBOT
#

:wave: Hey @green turret,

Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich immich.

References

#

Checklist

I have...

  1. :blue_square: verified I'm on the latest release(note that mobile app releases may take some time).
  2. :blue_square: read applicable release notes.
  3. :blue_square: reviewed the FAQs for known issues.
  4. :blue_square: reviewed Github for known issues.
  5. :blue_square: tried accessing Immich via local ip (without a custom reverse proxy).
  6. :blue_square: uploaded the relevant information (see below).
  7. :blue_square: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable

(an item can be marked as "complete" by reacting with the appropriate number)

Information

In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider:

  • Your docker-compose.yml and .env files.
  • Logs from all the containers and their status (see above).
  • All the troubleshooting steps you've tried so far.
  • Any recent changes you've made to Immich or your system.
  • Details about your system (both software/OS and hardware).
  • Details about your storage (filesystems, type of disks, output of commands like fdisk -l and df -h).
  • The version of the Immich server, mobile app, and other relevant pieces.
  • Any other information that you think might be relevant.

Please paste files and logs with proper code formatting, and especially avoid blurry screenshots.
Without the right information we can't work out what the problem is. Help us help you ;)

If this ticket can be closed you can use the /close command, and re-open it later if needed.

GitHub

Explore the GitHub Discussions forum for immich-app immich. Discuss code, ask questions & collaborate with the developer community.

GitHub

High performance self-hosted photo and video management solution. - Issues · immich-app/immich

green turret
#

maybe related issue: #15603

little brookBOT
green turret
#

@cobalt axle pinging you because you were asking for a debug session on the issue

cobalt axle
#

Thanks, I will take a look later

cobalt axle
green turret
#

I'll try

#

just need to screenshot my settings first :P

#

same error on my phone

#
#0      AssetResponseDto.fromJson (package:openapi/model/asset_response_dto.dart:291)
#1      AssetResponseDto.listFromJson (package:openapi/model/asset_response_dto.dart:324)
#2      AlbumResponseDto.fromJson (package:openapi/model/album_response_dto.dart:198)
#3      ApiClient.fromJson (package:openapi/api_client.dart:204)
#4      ApiClient.deserialize (package:openapi/api_client.dart:158)
<asynchronous suspension>
#5      AlbumsApi.getAlbumInfo (package:openapi/api/albums_api.dart:278)
<asynchronous suspension>
#6      ApiRepository.checkNull (package:immich_mobile/repositories/api.repository.dart:5)
<asynchronous suspension>
#7      AlbumApiRepository.get (package:immich_mobile/repositories/album_api.repository.dart:22)
<asynchronous suspension>
#8      SyncService._addAlbumFromServer (package:immich_mobile/services/sync.service.dart:452)
<asynchronous suspension>
#9      diffSortedLists (package:immich_mobile/utils/diff.dart:34)
<asynchronous suspension>
#10     SyncService._syncRemoteAlbumsToDb (package:immich_mobile/services/sync.service.dart:323)
<asynchronous suspension>
#11     AlbumService.refreshRemoteAlbums (package:immich_mobile/services/album.service.dart:190)
<asynchronous suspension>
#12     AlbumNotifier.refreshRemoteAlbums (package:immich_mobile/providers/album/album.provider.dart:35)
<asynchronous suspension>
#13     AlbumsPage.build.<anonymous closure> (package:immich_mobile/pages/albums/albums.page.dart:94)
<asynchronous suspension>
#14     RefreshIndicatorState._show.<anonymous closure>.<anonymous closure> (package:flutter/src/material/refresh_indicator.dart:503)
<asynchronous suspension>
cobalt axle
#

Do you know if she has any empty album 🤔 ?

green turret
#

also the timeline does not show recent images, the newest ones are one year old (january 24)

#

she does

cobalt axle
#

empty album on Immich instance

green turret
#

she has multiple

cobalt axle
#

yeah let's try removing them

green turret
#

those are synced

#

same error still appears

#

the album bottom nav shows a spinning circle for quite a while

#

I fully cleared the immich cache for now

#

Error while getting remote assets:

#
#0      AssetResponseDto.fromJson (package:openapi/model/asset_response_dto.dart:291)
#1      ApiClient.fromJson (package:openapi/api_client.dart:260)
#2      ApiClient.fromJson.<anonymous closure> (package:openapi/api_client.dart:653)
#3      MappedListIterable.elementAt (dart:_internal/iterable.dart:425)
#4      ListIterator.moveNext (dart:_internal/iterable.dart:354)
#5      new _List._ofEfficientLengthIterable (dart:core-patch/array.dart:163)
#6      new _List.of (dart:core-patch/array.dart:128)
#7      new List.of (dart:core-patch/array_patch.dart:39)
#8      ListIterable.toList (dart:_internal/iterable.dart:224)
#9      ApiClient.fromJson (package:openapi/api_client.dart:654)
#10     ApiClient.deserialize (package:openapi/api_client.dart:158)
<asynchronous suspension>
#11     SyncApi.getFullSyncForUser (package:openapi/api/sync_api.dart:108)
<asynchronous suspension>
#12     AssetService._getRemoteAssets (package:immich_mobile/services/asset.service.dart:145)
<asynchronous suspension>
#13     SyncService._syncRemoteAssetsForUser (package:immich_mobile/services/sync.service.dart:267)
<asynchronous suspension>
#14     SyncService._syncRemoteAssetsFull (package:immich_mobile/services/sync.service.dart:257)
<asynchronous suspension>
#15     SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:92)
<asynchronous suspension>
#16     AsyncMutex.run.<anonymous closure> (package:immich_mobile/utils/async_mutex.dart:15)
<asynchronous suspension>
cobalt axle
#

Hmm

#

let me dive into this a bit

#

I found some weirdness

cobalt axle
#

Can you try go to her account, go the the trash page and clear all the trash?

green turret
#

she has none

cobalt axle
#

HMMM

green turret
#

:P

cobalt axle
#

Do you have a development environment setup?

green turret
#

I can spin one up

#

I noticed a warn message:

#

Failed to add album from server: assetCount 389 != asset array length 383 for album Türkei 2024

#

Türkei 2024 is a album that I share with her

#

removed her from that album, message is gone but error still appears, that was not it

cobalt axle
#

Yeah we just fixed this issue

cobalt axle
#

looks like there is a weird edge case somewhere

green turret
#

oh, you mean a android emulator to try

#

give me a second

cobalt axle
#

so the response check for that property on line 291

#

I am pretty sure all the assets you have in the assets table have that value

#

can you double check quickly?

green turret
#

some have a strange date

#

no entries

cobalt axle
#

what does keine dantensatze mean

green turret
#

no entries

cobalt axle
#

Hmm

#

I wonder if you can change all weird date to 1990 instead

green turret
#

doing that rn

cobalt axle
#

and see if it helps

green turret
#

doing 2000

cobalt axle
#

okay

green turret
#

also noticed in web if I scroll to the bottom (in her account), there are assets with an invalid date

#

those are gone now btw

#

seems to refresh them now, but I still have the error in the logs

#

but it is doing something now

#

yea, that fixed it

#

I will have to check again on her phone (she is sleeping now :P) but it is working on mine as far as I can tell

#

I'm building the timeline again and check for errors

cobalt axle
#

Hmm that is weird

green turret
#

yea, errors gone. only the warnings about the assetcount != asset array lenght showing

cobalt axle
green turret
#

error logs gone and it seems to work

#

and all those 'strange' dates were only associated with her account

cobalt axle
#

I see

#

Thanks for helping me debug, so the timeline is now built, correct?

green turret
#

yes

#

also the albums show up again

cobalt axle
#

Hmm, I tried to changed the date, I still can fetch all the assets but some albums don't show up

#

I kinda lie

#

I can make it not show up

#

NICE

#

will fix it tonight and hot fix later

green turret
#

it still showed SOME but not ALL

#

timeline was partially built

#

thank you alex

cobalt axle
#

No, thank you

green turret
#

fyi, I changed fileCreatedAt, fileModifiedAt and localDateTime

#

I also replied to the issue on discord with a link to this thread.

cobalt axle
#

Hey do you mind send me one of those bad data asset?

#

I want to see if this only affect older data when ingesting to pre-Kysely database

green turret
# cobalt axle Hey do you mind send me one of those bad data asset?

Hey alex, I just noticed that those files are named like Snapchat-1025110404.jpg, I imported them via immich-go which detected the date 1025-11-04 so nothing 'wrong' with the file, just messed up dates. Do you still want the files? I was not able to see bad dates on the files.

hazy night
#

Curious, is this still a known issue? I am experiencing the exact same symptons as JW right now. App and Server up to date.

cobalt axle
#

ah

#

nvm

#

Can you run this and post the output here?

select a.id, a."fileCreatedAt" from assets a order by a."fileCreatedAt" asc limit 15;
#

as well as show timezone;

hazy night
#

I got fifteen responses with that queary

#

"8a6b3898-3755-4388-8af6-112ebbca255b" "2003-09-01 07:31:48-05"
"63004fdf-d254-4244-a5ae-82f40989a9ef" "2003-09-01 07:31:50-05"
"f2e7c1a0-f740-4087-8913-513c54650f44" "2003-09-01 07:32:01-05"
"756c5780-916e-429a-b060-a594156618dd" "2003-09-01 07:32:07-05"
"260cc1c5-1bf1-46cb-bb85-08f06c18e89f" "2003-09-01 13:47:25-05"
"ab67ba20-8349-43b9-9939-6e44d356196e" "2003-09-01 13:47:27-05"
"aa74a58c-da79-460c-b538-ca84f2ab74db" "2003-09-01 13:47:33-05"
"aa967e20-afc3-4733-bfd4-b0970a514b17" "2003-09-01 21:55:21-05"
"2830787e-d847-4358-bd9c-bd1521574d87" "2003-09-01 21:55:23-05"
"07629e5e-5c58-471b-8ff6-982a21d9b213" "2003-09-01 21:55:25-05"
"48c76949-a381-4107-99b2-5394609d154c" "2003-09-01 21:55:27-05"
"a5e0fe04-470f-438d-b19d-27c0fb68123a" "2003-09-01 21:55:31-05"
"efb1bf1f-5776-48ca-ab5f-4c09f8ddaa11" "2003-09-01 21:55:34-05"
"2917101a-8d56-44e3-aaa3-bb434f090e29" "2003-09-01 21:55:36-05"
"b1950ead-6b65-4bba-b1b8-a3c8f626e984" "2003-09-01 21:55:40-05"

#

timezone returned "America/Chicago"

#

So doesn't seem to have any weird date issue. I went and emptied the trash like you suggested to JW. Only other piece of info is that this phone was wiped and restored from an iCloud Backup this week. Other symptoms are almost a carbon copy to JW's

cobalt axle
#

posting your .env and docker-compose would also help please

hazy night
#

"8a6b3898-3755-4388-8af6-112ebbca255b" "2003-09-01 07:31:48-05"
"63004fdf-d254-4244-a5ae-82f40989a9ef" "2003-09-01 07:31:50-05"
"f2e7c1a0-f740-4087-8913-513c54650f44" "2003-09-01 07:32:01-05"
"756c5780-916e-429a-b060-a594156618dd" "2003-09-01 07:32:07-05"
"260cc1c5-1bf1-46cb-bb85-08f06c18e89f" "2003-09-01 13:47:25-05"
"ab67ba20-8349-43b9-9939-6e44d356196e" "2003-09-01 13:47:27-05"
"aa74a58c-da79-460c-b538-ca84f2ab74db" "2003-09-01 13:47:33-05"
"aa967e20-afc3-4733-bfd4-b0970a514b17" "2003-09-01 21:55:21-05"
"2830787e-d847-4358-bd9c-bd1521574d87" "2003-09-01 21:55:23-05"
"07629e5e-5c58-471b-8ff6-982a21d9b213" "2003-09-01 21:55:25-05"
"48c76949-a381-4107-99b2-5394609d154c" "2003-09-01 21:55:27-05"
"a5e0fe04-470f-438d-b19d-27c0fb68123a" "2003-09-01 21:55:31-05"
"efb1bf1f-5776-48ca-ab5f-4c09f8ddaa11" "2003-09-01 21:55:34-05"
"2917101a-8d56-44e3-aaa3-bb434f090e29" "2003-09-01 21:55:36-05"
"b1950ead-6b65-4bba-b1b8-a3c8f626e984" "2003-09-01 21:55:40-05"

#

I am using the CA version on Unraid, do you need anything from that?

cobalt axle
#

We've discovered one weird issue is that if the timezone of the database is not UTC, it is creating some weirdness

hazy night
#

Interesting, how would I change that?

cobalt axle
#

is this a standalone postgres database? Not from docker-compose

hazy night
#

Correct

cobalt axle
#

Can you try SET timezone TO 'UTC';

#

then try accessing the app again

#

Then access this URL and scroll to the very bottom to see what is the last few timeBucket entries are

http://server-ip:2283/api/timeline/buckets?isArchived=false&size=MONTH&withPartners=true&withStacked=true
hazy night
#

Hmm getting a refused to connect error when trying to access that url. Noticed it wasnt a port listed in the CA template so I added it and still not able to access.

#

(I did put my ip in)

#

iOS is still giving the "Error while getting remote assets" error

cobalt axle
#

Replace the server ip with your immich instance url

hazy night
#

I did

cobalt axle
#

Can you access your immich web instance?

hazy night
#

Yup

#

with the same ip that I used for that URL. Using my domain through my NPM also works but I have been using the direct IP for all of this to eliminate NPM as a variable

cobalt axle
#

Can you show the screenshot of your immich instance and the screenshot for the url above?

hazy night
#

I had to head out but I will later tonight. Appreciate the help.

cobalt axle
#

No problem. The log from the mobile app is also helpful to see if it is coming from the same stack trace

hazy night
#

There is the log. Will get the screenshots when I get back home

cobalt axle
#

Ah your issue is from bad date from fileModifiedAt

#

So we need to run this

select a.id, a."fileModifiedAt" from assets a order by a."fileModifiedAt" asc limit 15;
cobalt axle
hazy night
#

Thats it! I have 908 with a bad year. Do I need to remove them or modify the date?

hazy night
#

Any tips to batch delete those offenders? My SQL is failing me 😂

#

They all have a year of 0001

rigid sedge
#

Collect the UUIDs then batch edit with the API

#

Do not edit the database

cobalt axle
#

can you run

select a.id, a."fileModifiedAt" from assets a where a."fileModifiedAt" < '1000-01-01 00:00:00';
hazy night
#

Yes that returns the 908 entries.

cobalt axle
#

You can either modified it with

update assets
set "fileModifiedAt" = '2025-01-01 00:00:00'
where "fileModifiedAt" < '1000-01-01 00:00:00';
#

or remove them with

delete from assets a 
where a."fileModifiedAt" < '1000-01-01 00:00:00';
hazy night
#

Thank you both! Got them removed and the timeline loaded perfectly on the iOS app!

cobalt axle
#

great, sorry for the hassle

full forum
#

Is there going to be a client or server side fix for this, or is the workaround above the correct solution?

cobalt axle
#

And it is a server fix btw

ivory delta
#

What command do I use to check which photo has a corrupted date generating this building timeline error?

summer arrow
#

Are you on 1.126.1 yet @ivory delta ?

ivory delta
#

1.125.2

summer arrow
#

It's fixed in 1.126.1 which is why I asked

ivory delta
#

Mobile app?

cobalt axle
ivory delta
#

ApiException 500: {"message":"Failed to get full sync for user","error":"Internal Server Error","statusCode":500,"correlationId":"8lxk4gm7"}

#

#0 SyncApi.getFullSyncForUser (package:openapi/api/sync_api.dart:101)
<asynchronous suspension>
#1 AssetService._getRemoteAssets (package:immich_mobile/services/asset.service.dart:145)
<asynchronous suspension>
#2 SyncService._syncRemoteAssetsForUser (package:immich_mobile/services/sync.service.dart:267)
<asynchronous suspension>
#3 SyncService._syncRemoteAssetsFull (package:immich_mobile/services/sync.service.dart:257)
<asynchronous suspension>
#4 SyncService.syncRemoteAssetsToDb.<anonymous closure> (package:immich_mobile/services/sync.service.dart:92)
<asynchronous suspension>
#5 AssetService.refreshRemoteAssets (package:immich_mobile/services/asset.service.dart:85)
<asynchronous suspension>
#6 AssetNotifier.getAllAsset (package:immich_mobile/providers/asset.provider.dart:55)
<asynchronous suspension>
#7 AppLifeCycleNotifier.handleAppResume (package:immich_mobile/providers/app_life_cycle.provider.dart:67)
<asynchronous suspension>