Skip to content

Changing time zone in mobile app shifts time instead #26280

@hasmar04

Description

@hasmar04

I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.

  • Yes

The bug

Originally reported this in #25882

When a photo is saved from an app (so far I have Facebook Messenger as an affected source) to my phone, it does not upload to Immich correctly, resulting in the timezone being incorrect and not being able to be changed. When the timezone is attempted to be changed, the time shifts instead.

The OS that Immich Server is running on

TrueNAS Scale 25.10.1

Version of Immich Server

v2.5.6 (TrueNAS App version 1.11.17)

Version of Immich Mobile App

v2.5.6

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

Samsung S25 Android 16

Your docker-compose.yml content

TZ: Australia/Brisbane
immich:
  additional_envs: []
  db_password: ##############
  db_storage_type: HDD
  enable_ml: true
  hugging_face_endpoint: ''
  log_level: log
  ml_image_selector: ml_image
  postgres_image_selector: vectorchord_15_image
  redis_password: ###########
ix_certificate_authorities: {}
ix_certificates: {}
ix_context:
  app_metadata: &id001
    annotations:
      min_scale_version: 24.10.2.2
    app_version: v2.4.1
    capabilities: []
    categories:
    - media
    changelog_url: https://github.com/immich-app/immich/releases
    date_added: '2024-08-02'
    description: Immich is a self-hosted photo and video backup solution directly
      from your mobile phone.
    home: https://immich.app
    host_mounts: []
    icon: https://media.sys.truenas.net/apps/immich/icons/icon.svg
    keywords:
    - photos
    - backup
    lib_version: 2.1.77
    lib_version_hash: 1837f8e69ae1adc313330c3b1c2615e9b4d03c5459d657a5898bae78090f8195
    maintainers:
    - email: dev@truenas.com
      name: truenas
      url: https://www.truenas.com/
    name: immich
    run_as_context:
    - description: Immich runs as any non-root user.
      gid: 568
      group_name: immich
      uid: 568
      user_name: immich
    - description: Postgres runs as non-root user.
      gid: 999
      group_name: postgres
      uid: 999
      user_name: postgres
    - description: Redis runs as any non-root user.
      gid: 568
      group_name: redis
      uid: 568
      user_name: redis
    screenshots: []
    sources:
    - https://immich.app
    - https://github.com/immich-app/immich
    title: Immich
    train: community
    version: 1.11.8
  app_name: immich
  is_install: false
  is_rollback: false
  is_update: false
  is_upgrade: true
  operation: UPGRADE
  scale_version: TrueNAS-25.04.2.6
  upgrade_metadata:
    new_version_metadata: *id001
    old_version_metadata:
      annotations:
        min_scale_version: 24.10.2.2
      app_version: v2.4.1
      capabilities: []
      categories:
      - media
      changelog_url: https://github.com/immich-app/immich/releases
      date_added: '2024-08-02'
      description: Immich is a self-hosted photo and video backup solution directly
        from your mobile phone.
      home: https://immich.app
      host_mounts: []
      icon: https://media.sys.truenas.net/apps/immich/icons/icon.svg
      keywords:
      - photos
      - backup
      lib_version: 2.1.77
      lib_version_hash: 1837f8e69ae1adc313330c3b1c2615e9b4d03c5459d657a5898bae78090f8195
      maintainers:
      - email: dev@truenas.com
        name: truenas
        url: https://www.truenas.com/
      name: immich
      run_as_context:
      - description: Immich runs as any non-root user.
        gid: 568
        group_name: immich
        uid: 568
        user_name: immich
      - description: Postgres runs as non-root user.
        gid: 999
        group_name: postgres
        uid: 999
        user_name: postgres
      - description: Redis runs as any non-root user.
        gid: 568
        group_name: redis
        uid: 568
        user_name: redis
      screenshots: []
      sources:
      - https://immich.app
      - https://github.com/immich-app/immich
      title: Immich
      train: community
      version: 1.11.7
ix_volumes: {}
labels: []
network:
  web_port:
    bind_mode: published
    host_ips: []
    port_number: 30041
release_name: immich
resources:
  gpus:
    kfd_device_exists: false
    nvidia_gpu_selection: {}
    use_all_gpus: true
  limits:
    cpus: 2
    memory: 4096
run_as:
  group: 568
  user: 568
storage:
  additional_storage: []
  data:
    host_path_config:
      acl_enable: false
      path: /mnt/MainPool/Apps/Immich/data
    type: host_path
  ml_cache:
    type: temporary
  postgres_data:
    host_path_config:
      acl_enable: false
      auto_permissions: true
      path: /mnt/MainPool/Apps/Immich/pgData
    type: host_path

Your .env content

See docker-compose.yml

Reproduction steps

  1. Receive photo via Messenger
  2. Save photo to device
  3. View in Immich
  4. Upload to Immich
  5. Go to timeline and view uploaded image
  6. Attempt to change timezone

Relevant log output

2026-02-17 16:45:24.825431 | info     | SyncStreamService    | Successfully processed 1 assets in batch |
2026-02-17 16:45:24.788719 | info     | SyncStreamService    | Processing batch of 1 AssetUploadReadyV1 events |
2026-02-17 16:44:43.205969 | info     | HashService          | Hashing took - 2ms |
2026-02-17 16:44:43.203207 | info     | HashService          | Starting hashing of assets |
2026-02-17 16:44:41.189141 | info     | SyncApiRepository    | Remote Sync completed in 297ms |
2026-02-17 16:44:40.742666 | info     | DeviceSyncService    | Device sync took - 17ms |
2026-02-17 16:44:40.742577 | info     | DeviceSyncService    | Full device sync took - 17ms |
2026-02-17 16:44:40.724902 | info     | SyncStreamService    | Remote sync request for user |
2026-02-17 16:44:39.995596 | info     | AppLifeCycleNotifier | Using server URL: null |
2026-02-17 16:39:32.013460 | info     | BackgroundWorkerBgService | Android background processing completed in 6s |
2026-02-17 16:39:30.007873 | info     | HashService          | Hashing took - 3ms |
2026-02-17 16:39:30.003826 | info     | HashService          | Starting hashing of assets |
2026-02-17 16:39:27.987116 | info     | SyncApiRepository    | Remote Sync completed in 365ms |
2026-02-17 16:39:27.422298 | info     | SyncStreamService    | Remote sync request for user |
2026-02-17 16:39:25.400966 | info     | DeviceSyncService    | Device sync took - 1ms |
2026-02-17 16:39:25.394815 | info     | BackgroundWorkerBgService | Android background processing started |
2026-02-17 16:39:11.072088 | info     | HashService          | Hashing took - 1ms |
2026-02-17 16:39:11.070956 | info     | HashService          | Starting hashing of assets |
2026-02-17 16:39:09.061386 | info     | SyncApiRepository    | Remote Sync completed in 261ms |
2026-02-17 16:39:08.644151 | info     | DeviceSyncService    | Device sync took - 13ms |
2026-02-17 16:39:08.644118 | info     | DeviceSyncService    | Full device sync took - 13ms |
2026-02-17 16:39:08.630863 | info     | SyncStreamService    | Remote sync request for user |
2026-02-17 16:39:07.961124 | info     | AppLifeCycleNotifier | Using server URL: null |
2026-02-17 16:38:40.629829 | info     | HashService          | Hashing took - 2ms |
2026-02-17 16:38:40.627233 | info     | HashService          | Starting hashing of assets |
2026-02-17 16:38:38.623380 | info     | SyncApiRepository    | Remote Sync completed in 351ms |
2026-02-17 16:38:38.114969 | info     | DeviceSyncService    | Device sync took - 16ms |
2026-02-17 16:38:38.114925 | info     | DeviceSyncService    | Full device sync took - 16ms |
2026-02-17 16:38:38.098736 | info     | SyncStreamService    | Remote sync request for user |

Additional information

I have attached a zip containing a photo that has been processed by Messenger and exhibits the behaviour.
I tested and can confirm that changing the timezone on the same uploaded asset via the web does succeed, and show correctly on mobile. However it then exhibits the same original behaviour, just shifting the time, when I try and change it again from mobile.
I also confirmed that changing other assets that I took locally or were not downloaded from Messenger do allow me to change the timezone on mobile.
Messenger_Photo_Example.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    To triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions