[beta] timeline error - type 'Null' is not a subtype of type 'String'

When enabling the beta timeline, the app shows: Error occurred - type 'Null' is not a subtype of type 'String' in type cast. None of the assets in the Photos tab show up. Disabling the beta timeline and the error disappears and assets become viewable again. Link to my issue on Github with details is here: https://github.com/immich-app/immich/issues/21213 Posting here for follow up support, thanks.
15 Replies
Immich
Immich2mo ago
:wave: Hey @memyselfandi8379, 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 - Container Logs: docker compose logs docs - Container Status: docker ps -a docs - Reverse Proxy: https://immich.app/docs/administration/reverse-proxy - Code Formatting https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline#h_01GY0DAKGXDEHE263BCAYEGFJA 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. [Issue] [beta] timeline error - type 'Null' is not a subtype of type 'String' (immich-app/immich#21213)
shenlong-tanwen
shenlong-tanwen2mo ago
Thanks! Can you export the SQLite DB of the app and open it in a client of your liking? You can export it by going to the settings page after enabling beta timeline -> Beta status page -> Scroll all the way down and "Export Database"
memyselfandi8379
memyselfandi8379OP2mo ago
Right that's done, are there initial queries would you like me to run?
shenlong-tanwen
shenlong-tanwen2mo ago
Sweet, Check the user entity and get the id of your current user. Then execute the following query with the <userid> replaced by your user's id
SELECT
COUNT(*) as asset_count,
STRFTIME('%Y-%m-%d', created_at, 'localtime') AS bucket_date
FROM
(
SELECT
rae.created_at
FROM
remote_asset_entity rae
LEFT JOIN
stack_entity se ON rae.stack_id = se.id
WHERE
rae.deleted_at IS NULL
AND rae.visibility = 0
AND rae.owner_id in ('<userid>')
AND (
rae.stack_id IS NULL
OR rae.id = se.primary_asset_id
)
UNION ALL
SELECT
lae.created_at
FROM
local_asset_entity lae
WHERE NOT EXISTS (
SELECT 1 FROM remote_asset_entity rae WHERE rae.checksum = lae.checksum AND rae.owner_id IN ('<userid>')
)
AND EXISTS (
SELECT 1 FROM local_album_asset_entity laa
INNER JOIN local_album_entity la on laa.album_id = la.id
WHERE laa.asset_id = lae.id AND la.backup_selection = 0
)
AND NOT EXISTS (
SELECT 1 FROM local_album_asset_entity laa
INNER JOIN local_album_entity la on laa.album_id = la.id
WHERE laa.asset_id = lae.id AND la.backup_selection = 2
)
)
GROUP BY bucket_date
ORDER BY bucket_date DESC;
SELECT
COUNT(*) as asset_count,
STRFTIME('%Y-%m-%d', created_at, 'localtime') AS bucket_date
FROM
(
SELECT
rae.created_at
FROM
remote_asset_entity rae
LEFT JOIN
stack_entity se ON rae.stack_id = se.id
WHERE
rae.deleted_at IS NULL
AND rae.visibility = 0
AND rae.owner_id in ('<userid>')
AND (
rae.stack_id IS NULL
OR rae.id = se.primary_asset_id
)
UNION ALL
SELECT
lae.created_at
FROM
local_asset_entity lae
WHERE NOT EXISTS (
SELECT 1 FROM remote_asset_entity rae WHERE rae.checksum = lae.checksum AND rae.owner_id IN ('<userid>')
)
AND EXISTS (
SELECT 1 FROM local_album_asset_entity laa
INNER JOIN local_album_entity la on laa.album_id = la.id
WHERE laa.asset_id = lae.id AND la.backup_selection = 0
)
AND NOT EXISTS (
SELECT 1 FROM local_album_asset_entity laa
INNER JOIN local_album_entity la on laa.album_id = la.id
WHERE laa.asset_id = lae.id AND la.backup_selection = 2
)
)
GROUP BY bucket_date
ORDER BY bucket_date DESC;
memyselfandi8379
memyselfandi8379OP2mo ago
right I've run that and there are two assets with a null date, plus a few with very weird dates, result attached.
shenlong-tanwen
shenlong-tanwen2mo ago
Interesting, Can you check the output of the following two queries?
SELECT * from remote_asset_entity WHERE STRFTIME('%Y-%m-%d', created_at, 'localtime') IS NULL
SELECT * from local_asset_entity WHERE STRFTIME('%Y-%m-%d', created_at, 'localtime') IS NULL
SELECT * from remote_asset_entity WHERE STRFTIME('%Y-%m-%d', created_at, 'localtime') IS NULL
SELECT * from local_asset_entity WHERE STRFTIME('%Y-%m-%d', created_at, 'localtime') IS NULL
memyselfandi8379
memyselfandi8379OP2mo ago
Remote asset check for null query results attached. The local assets query returns no results.
shenlong-tanwen
shenlong-tanwen2mo ago
Can you query the assets on the server's DB and share the timestamps there? https://immich.app/docs/guides/database-gui https://immich.app/docs/guides/database-queries
select * from asset where id = '<asset_id>'
select * from asset where id = '<asset_id>'
memyselfandi8379
memyselfandi8379OP2mo ago
Query output attached.
shenlong-tanwen
shenlong-tanwen2mo ago
Looks like both the assets have an incorrect timestamp which messes up the mobile app. Can you correct the timestamps of those two assets? BTW, how many remote assets do you have?
memyselfandi8379
memyselfandi8379OP2mo ago
Ok I've set the created date to match the modified date for those assets, and the error in the mobile app now disappears. Fairly simple fix in the end, not sure how those incorrect timestamps got into the database, maybe a result of a bulk import from immich-go? BTW I have 83,293 remote assets. Thanks for your help.
Ravoyax
Ravoyax3w ago
I seem to have run into the same issue. I've corrected the date of that asset, what job do I need to rerun in the app?
shenlong-tanwen
Just closing and reopening the app should do
Ravoyax
Ravoyax3w ago
Didn't think of the most obvious solution 🤦‍♂️ Thanks.
Immich
Immich2w ago
This thread has been closed. To re-open, use the button below.

Did you find this page helpful?