immich Release Notes

Follow

26 release notes curated from 1 source by the Releasebot Team. Last updated: Sep 4, 2026

Get this feed:
  • Sep 4, 2026
    • Date parsed from source:
      Sep 4, 2026
    • First seen by Releasebot:
      Sep 4, 2026
    immich logo

    immich

    v3.2.0-rc.3

    immich ships v3.2.0-rc.3 with more bug fixes and improvements ahead of the final v3.2 release, including server, web, and mobile fixes plus updates to album date ranges, partner sharing, face detection, and memory lane refresh.

    v3.2.0-rc.3

    Warning

    Disclaimer

    This is a release candidate, not a stable release. It is subject to change and may contain bugs or breaking changes. As always, make sure you have a backup of your database and library before upgrading to this version.

    Welcome to the third release candidate of v3.2; v3.2.0-rc.3! Just a few more bug fixes for more people to test over the long weekend, before we will release next week.

    Release notes

    Work-in-progress release notes can be found here:

    https://pr-737.dev.immich.app/blog/v3.2.0-release

    Server

    To use this RC version on the server, update the IMMICH_VERSION in your .env file:

    IMMICH_VERSION=v3.2.0-rc.3

    or

    IMMICH_VERSION=v3-rc

    Then pull and restart:

    docker compose pull && docker compose up -d
    

    Mobile

    To use this RC version on the mobile app, follow the appropriate link for your platform:

    Android

    You can download the APK in the release note below, or tap on "Join the beta" from the Google Play Immich page

    iOS

    The iOS app is available via Testflight: https://testflight.apple.com/join/JTSTucBd

    If you run into any issues, please report them on GitHub so we can address them before the final release. Thank you for helping us test!

    And as always, bugs are fixed, and many other improvements also come with this release.

    What's Changed

    πŸ› Bug fixes

    fix(server): never unlink an untracked-file path that an asset now references by @immich-push-o-matic[bot] in #31194

    fix: incorrect edit's openapi type by @immich-push-o-matic[bot] in #31233

    fix(web): album date range formatting by @immich-push-o-matic[bot] in #31238

    fix: face detection of edited assets by @immich-push-o-matic[bot] in #31243

    fix(mobile): prevent inner mutability on Freezed classes by @immich-push-o-matic[bot] in #31251

    fix(web): partner sharing timeline by @immich-push-o-matic[bot] in #31252

    fix(mobile): refresh the memory lane after resume by @immich-push-o-matic[bot] in #31260

    Full Changelog: v3.2.0-rc.2...v3.2.0-rc.3

    Original source
  • Aug 31, 2026
    • Date parsed from source:
      Aug 31, 2026
    • First seen by Releasebot:
      Jun 19, 2026
    • Modified by Releasebot:
      Aug 31, 2026
    immich logo

    immich

    v3.2.0-rc.2

    immich ships v3.2.0-rc.2, a release candidate with bug fixes centered on person merging and the new search UI, plus several web, mobile, server, and machine learning improvements.

    v3.2.0-rc.2

    Warning

    Disclaimer

    This is a release candidate, not a stable release. It is subject to change and may contain bugs or breaking changes. As always, make sure you have a backup of your database and library before upgrading to this version.

    Welcome to the second release candidate of v3.2; v3.2.0-rc.2! There have been a few bug fixes, primarily around person merging and the new search UI.

    Release notes

    Work-in-progress release notes can be found here:

    https://pr-737.dev.immich.app/blog/v3.2.0-release

    Server

    To use this RC version on the server, update the IMMICH_VERSION in your .env file:

    IMMICH_VERSION=v3.2.0-rc.2

    or

    IMMICH_VERSION=v3-rc

    Then pull and restart:

    docker compose pull && docker compose up -d
    

    Mobile

    To use this RC version on the mobile app, follow the appropriate link for your platform:

    Android

    You can download the APK in the release note below, or tap on "Join the beta" from the Google Play Immich page

    iOS

    The iOS app is available via Testflight: https://testflight.apple.com/join/JTSTucBd

    If you run into any issues, please report them on GitHub so we can address them before the final release. Thank you for helping us test!

    And as always, bugs are fixed, and many other improvements also come with this release.

    What's Changed

    πŸ› Bug fixes

    • fix(web): face editor coordinates on a not-yet-loaded video by @immich-push-o-matic[bot] in #31085
    • fix: do not move faces of users other than the current owner by @immich-push-o-matic[bot] in #31149
    • fix(server): allow an empty assetIds array when creating an album shared link by @immich-push-o-matic[bot] in #31151
    • fix(mobile): keep the original filename when sharing downloaded assets by @immich-push-o-matic[bot] in #31154
    • fix(mobile): handle transient loading states for map timelines by @immich-push-o-matic[bot] in #31153
    • fix(web): interaction with some filter elements closes the search panel by @immich-push-o-matic[bot] in #31160
    • fix(ml): read CLIP model configs as UTF-8 by @immich-push-o-matic[bot] in #31152
    • fix(mobile): refresh server info when the websocket connects by @immich-push-o-matic[bot] in #31155

    Full Changelog: v3.2.0-rc.1...v3.2.0-rc.2

    Original source
  • All of your release notes in one feed

    Join Releasebot and get updates from immich and hundreds of other software products.

    Create account
  • Aug 28, 2026
    • Date parsed from source:
      Aug 28, 2026
    • First seen by Releasebot:
      Aug 28, 2026
    immich logo

    immich

    v3.2.0-rc.1

    immich releases v3.2.0-rc.1 as the first v3.2 release candidate, bringing a new search UI and API, workflow logging, memories view, cluster groups, asset file APIs, plus broad mobile, web, and server fixes and improvements.

    v3.2.0-rc.1

    Warning

    Disclaimer

    This is a release candidate, not a stable release. It is subject to change and may contain bugs or breaking changes. As always, make sure you have a backup of your database and library before upgrading to this version.

    Welcome to the first release candidate of v3.2; v3.2.0-rc.1! Due to redoing the way we do releases, we had to sacrifice rc.0 unfortunately πŸ˜…. But, we are now able to backport changes from main to older releases. Especially, that also means no more PR merge freezes after a release, in case we need to release any patch fixes.

    Release notes

    Work-in-progress release notes can be found here:

    https://pr-737.dev.immich.app/blog/v3.2.0-release

    Server

    To use this RC version on the server, update the IMMICH_VERSION in your .env file:

    IMMICH_VERSION=v3.2.0-rc.1

    or

    IMMICH_VERSION=v3-rc

    Then pull and restart:

    docker compose pull && docker compose up -d
    

    Mobile

    To use this RC version on the mobile app, follow the appropriate link for your platform:

    Android

    You can download the APK in the release note below, or tap on "Join the beta" from the Google Play Immich page

    iOS

    The iOS app is available via Testflight: https://testflight.apple.com/join/JTSTucBd

    If you run into any issues, please report them on GitHub so we can address them before the final release. Thank you for helping us test!

    And as always, bugs are fixed, and many other improvements also come with this release.

    What's Changed

    πŸš€ Features

    feat: workflow logging by @benbeckford in #29878

    feat(web): new search ui by @benbeckford in #30279

    feat: new config endpoints by @jrasm91 in #30881

    feat: cluster groups by @jrasm91 in #30739

    feat: asset file apis by @jrasm91 in #25900

    feat: memories view by @benbeckford in #28675

    feat(mobile): show asset owner in asset details by @Lauritz-Tieste in #29302

    feat(server): new search API by @timonrieger in #30179

    🌟 Enhancements

    feat: store null instead of empty string for album.description by @gPinato in #30123

    feat: log hint about downgrades when migration is missing by @bo0tzz in #30493

    feat(web): search album description in add-to-album modal by @djadji-gueye in #30462

    feat: Display the number of selected items in AlbumPickerModal title by @statox in #30485

    feat(widget): add toggle to match icon theme by @bwees in #30428

    feat: workflow asset tag trigger/filter/action by @benbeckford in #29043

    feat: iOS dynamic background ids by @mikes1991gh in #30574

    feat: actions undo handling by @shenlong-tanwen in #30481

    feat: rotate an API key by @bwees in #30801

    fix(cli): enforce node engine version on start by @bo0tzz in #30437

    chore(server): migrate library e2e tests by @etnoy in #27277

    feat: add oauth account management url by @sacha-c in #30873

    feat(web): tag renaming v2 by @jorbrock in #27909

    chore: search filter animation improvement and reactive search cue example by @alextran1502 in #30866

    perf(web): use hash-wasm SHA-1 with pure-JS fallback for upload hashing by @mosh-dev in #30107

    fix: don't swallow fetch errors by @bo0tzz in #30496

    feat(mobile): map asset number by @YarosMallorca in #28911

    feat: allow users to re-run facial recognition for their group by @danieldietzler in #30965

    feat(web): view assets in map viewport by @rickytrevor in #27492

    πŸ› Bug fixes

    fix: make sure iOS memory widget render by @alextran1502 in #30172

    fix: calendar heatmap permissions by @danieldietzler in #30310

    fix: calendar heatmap api key permissions by @danieldietzler in #30314

    fix(deployment): matplotlib in rootless deployments by @mmomjian in #30328

    fix(mobile): refresh person thumbnail when the featured photo changes by @santoshakil in #29350

    fix: assetFileFilter path matching by @benbeckford in #30394

    fix: shared check for server setup availability by @bo0tzz in #30311

    fix(mobile): resolve owned assets when partner owns identical asset by @agg23 in #30137

    fix(web): Fix face thumbnail when swapping merge direction by @lhvy in #30466

    fix(server): reject invalid or deleted user when creating a partner by @djadji-gueye in #30431

    fix(server): remove the asset row when an upload fails after creating it by @santoshakil in #30349

    fix(mobile): correct mislabeled Bengali locale entry by @DrHaque in #30519

    fix(mobile): sync stack changes from the websocket by @santoshakil in #30479

    fix: metadata extraction as LensModel can be a float by @danieldietzler in #30512

    fix(mobile): run one more sync round when a request arrives mid sync by @santoshakil in #30478

    fix: use setRequireOriginal on SDK 29 and above by @shenlong-tanwen in #29072

    fix(mobile): stale local renders after editing a photo on device by @santoshakil in #30415

    fix(mobile): stop websocket reconnect loop draining battery when server is unreachable by @santoshakil in #29901

    fix(mobile): stop long images squishing on ios by @santoshakil in #29367

    fix(mobile): keep backup remainder from going negative by @santoshakil in #29011

    fix(mobile): handle asset websocket events by @santoshakil in #30499

    fix(mobile): stop disabling androidx.startup initializers by @shenlong-tanwen in #30559

    fix: map not updating after viewing an asset by @shenlong-tanwen in #30601

    fix(deployment): Add huggingface cache directory to Dockerfile by @mmomjian in #30357

    fix(mobile): video playback controls dead for backed up videos opened from search by @santoshakil in #30587

    fix(mobile): decode remote thumbnails at displayed size by @santoshakil in #29965

    fix(mobile): don't let a frozen sync block syncing on resume by @santoshakil in #29870

    fix: face label clipping by @danieldietzler in #30712

    fix: owner cascade delete album by @danieldietzler in #30692

    fix(mobile): prevent iOS status bar scroll to top during transitions by @agg23 in #30717

    fix(mobile): disable iOS smart quotes/dashes in email/password inputs by @agg23 in #30767

    fix(mobile): prevent snapping to center on pinch-to-zoom release (#29207) by @cmdPromptCritical in #29343

    fix: shared link create validation by @danieldietzler in #30762

    fix(mobile): mark finished downloads complete instead of leaving them stuck by @santoshakil in #29023

    fix: freeze on navigating back album description by @YarosMallorca in #30781

    fix(server): guard createAll against empty values list by @tech00exploere in #30837

    fix(server): respect backpressure in the sync stream by @enol5423 in #30764

    fix(server): update ocr & faces after asset edit by @YarosMallorca in #29303

    fix(mobile): resend an upload once when the connection dies before a response by @santoshakil in #30843

    fix(mobile): cannot deep link to memory lane (#30634) by @nikhilpodila in #30787

    fix: redis cli ping command by @mmomjian in #30329

    fix(server): do not throw on unparsable DB_URL when building backup arguments by @NoiceHax in #30759

    fix(server): Sort stacked assets by creation date by @timonrieger in #24033

    fix(web): gracefully handle map errors when WebGL is disabled by @meesfrensel in #26538

    fix(server): unicode email validation by @YarosMallorca in #30871

    fix(mobile): order album/place/person timelines by local date by @santoshakil in #29338

    chore(mobile): update flutter-maplibre-gl to 0.27.0 by @agg23 in #30892

    fix(web): download archives via html POST forms by @diogotcorreia in #30021

    fix(server): library exclusion patterns can soft-delete assets outside their directory by @PAtreju in #30850

    fix(mobile): dedupe stale remote_asset rows on sync by @santoshakil in #28445

    fix(server): correct asset dimensions from exif metadata by @fuergaosi233 in #29244

    fix: quote database owner in restore by @danieldietzler in #30905

    fix(mobile): permanently delete local copies when moving to the locked folder by @santoshakil in #29730

    fix(server): let a second metadata extraction replace stored AV metadata by @RxChi1d in #30900

    fix: do not exit search screen on back during multiselect by @YarosMallorca in #30689

    fix(mobile): respect 24h system setting by @YarosMallorca in #30792

    fix: maintentance return URL sanitization by @bwees in #30948

    fix: remove partner assets from existing memories by @shenlong-tanwen in #28950

    fix(server): correct tag create operations by @jorbrock in #30877

    fix: thumbnail generation for specific SVGs by @danieldietzler in #30908

    fix(mobile): aspect ratio change by @ferraridamiano in #30939

    fix: throw a typed error on malformed api responses by @bo0tzz in #31006

    fix(web): restore timeline scroll when the asset id cannot be resolved by @thejeff77 in #30916

    fix(web): do not play memory video if the MemoryVideoViewer element is not visible by @Zlendy in #30947

    fix(web): preserve slideshow pause state when viewing video slides by @tech00exploere in #30278

    fix: draggable Immich logo by @danieldietzler in #31055

    fix(server): kill pg_dump when a backup fails so it stops holding table locks by @justadityaraj in #30851

    fix(web): misleading toast notification by @brn-lin in #30976

    fix(web): map by @jrasm91 in #31056

    fix: external library statistics for excluded assets by @stevenjoezhang in #28462

    feat: same-second photos now sub-sort by filename by @andydotmp3 in #29528

    πŸ“š Documentation

    fix(docs): remove listing unraid as an "official" deployment by @mmomjian in #30323

    fix(docs): Revise config file instructions and notes by @mmomjian in #30418

    docs: fix identity provider examples in oauth guide by @fredrikekre in #30828

    docs: Update backup script to match manual/automatic backups by @Quantum-Cucumber in #26810

    docs: update remote-machine-learning.md by @Aviatorpaal in #28728

    🌐 Translations

    feat: add cantonese for mobile by @danieldietzler in #30318

    chore(web): update translations by @weblate in #30296

    New Contributors

    @jaegeral made their first contribution in #30385

    @deveshkolte made their first contribution in #30223

    @gPinato made their first contribution in #30123

    @lhvy made their first contribution in #30466

    @djadji-gueye made their first contribution in #30462

    @DrHaque made their first contribution in #30519

    @statox made their first contribution in #30485

    @ihmcsm made their first contribution in #30742

    @baseballyama made their first contribution in #30782

    @enol5423 made their first contribution in #30764

    @mikes1991gh made their first contribution in #30574

    @nikhilpodila made their first contribution in #30787

    @fredrikekre made their first contribution in #30828

    @NoiceHax made their first contribution in #30759

    @Quantum-Cucumber made their first contribution in #26810

    @sacha-c made their first contribution in #30873

    @PAtreju made their first contribution in #30850

    @fuergaosi233 made their first contribution in #29244

    @jorbrock made their first contribution in #27909

    @RxChi1d made their first contribution in #30900

    @mosh-dev made their first contribution in #30107

    @thejeff77 made their first contribution in #30916

    @brn-lin made their first contribution in #30976

    @Aviatorpaal made their first contribution in #28728

    @stevenjoezhang made their first contribution in #28462

    @andydotmp3 made their first contribution in #29528

    @rickytrevor made their first contribution in #27492

    @immich-push-o-matic[bot] made their first contribution in #31066

    Full Changelog: v3.1.0...v3.2.0-rc.1

    Original source
  • Aug 27, 2026
    • Date parsed from source:
      Aug 27, 2026
    • First seen by Releasebot:
      Aug 28, 2026
    immich logo

    immich

    v3.2.0-rc.0: fix: build release branch images instead of re-tagging main (#31064)

    immich fixes release branch builds by creating images directly instead of re-tagging main.

    fix: build release branch images instead of re-tagging main (#31063)

    (cherry picked from commit 5baf181)

    Co-authored-by: bo0tzz [email protected]

    Original source
  • Jul 29, 2026
    • Date parsed from source:
      Jul 29, 2026
    • First seen by Releasebot:
      Jul 31, 2026
    immich logo

    immich

    v3.1.0

    immich releases v3.1.0 with quality-of-life upgrades and bug fixes, adding web upload wakelock, undo archive, richer workflow filters, quicker maintenance access, better slideshow visibility, OIDC role sync improvements, session invalidation on password reset, and mobile map date filtering.

    Welcome to Immich v3.1.0!

    This release includes several quality of life improvements and another round of bug fixes. Keep reading below for the complete highlights.

    Highlights

    • Upload wakelock (web)
    • Undo archive (web)
    • Filter assets by server filepath (workflows)
    • Quick navigate to maintenance page (web)
    • Better slideshow button accessibility (web)
    • OIDC role claim sync improvements (OAuth)
    • Invalidate sessions on password reset (admin-cli)

    Upload wakelock (web)

    Similar to mobile, the web application will now automatically acquire a wakelock to prevent the screen from dimming while uploads are happening. This feature will require an HTTPS connection.

    Undo archive (web)

    After archiving assets, the success notification now has an β€œundo” button to undo the action.

    Filter assets by server filepath (workflows)

    The asset file filter has a new option β€œUse path”. When set to true, it will filter based on the actual path on the server rather than the original file name.

    Filter assets by EXIF metadata (workflows)

    A new workflow filter has been added that allows you to filter assets based on their EXIF metadata fields. For now it only supports string comparisons, with numerical comparisons expected to come soon.

    Quick navigate to maintenance page (web)

    The command palette (CTRL+K or /) now includes an item for the maintenance page.

    Better slideshow button visibility (web)

    The slideshow buttons on the web are now wrapped in a container with a backdrop blur, making them easier to view when the current asset is very light.

    OIDC role claim sync improvements (OAuth)

    The OAuth integration in Immich supports setting an initial isAdmin value for new users via a role claim. This same process has been updated to now sync isAdmin on subsequent logins. Additionally, the role claim now supports both single values (immich_role: 'admin') in addition to lists of values ( immich_role: ["admin", "user"]), making in more flexible.

    Invalidate sessions on password reset (admin-cli)

    When using the admin command line interface to reset a password, there is now a new option to invalidate existing sessions.

    immich-admin reset-admin-password

    Found Admin:

    • ID=e65e6f88-2a30-4dbe-8dd9-1885f4889b53
    • OAuth ID=
    • [email protected]
    • Name=Immich Admin
      ? Please choose a new password (optional) immich-is-cool
      ? Invalidate existing sessions? Yes
      The admin password has been updated.

    Date range for map (mobile)

    Similar to web, mobile now also supports filtering the map for assets within a given date range.

    What's Changed

    🚨 Breaking Changes

    chore(mobile): drop support for iOS 14 by @agg23 in #29780

    πŸš€ Features

    feat(cli): Add --visibility flag to immich CLI upload subcommand by @yuxincs in #29614

    feat(mobile): custom date range for map by @YarosMallorca in #26205

    🌟 Enhancements

    feat(web): Keep show more open on duplicates by @MontejoJorge in #29734

    fix(server/workflow): add trigger for external libraries AssetCreate by @cratoo in #29597

    chore(seo): remove redundant twitter metadata tags by @cevdetta in #29801

    feat(web): add wake lock when uploading assets by @diogotcorreia in #29820

    feat(web): undo archive from toast by @YarosMallorca in #27061

    feat: workflow filter assets by upload path by @benbeckford in #30000

    feat(web): add maintenance link to command palette by @yamishi13 in #30016

    feat: add album asset event handling by @timonrieger in #29008

    fix(web): improve slideshow controls visibility on bright backgrounds by @tech00exploere in #29950

    fix: re-evaluate OIDC role claim on every login and support array values by @ImperatorRuscal in #29991

    feat: exif metadata workflow filter by @benbeckford in #29295

    feat: password invalidate sessions by @jrasm91 in #30125

    πŸ› Bug fixes

    fix(mobile): apply exif orientation to remote raw photos on android by @santoshakil in #29906

    fix(web): hide stack thumbnail tray in slideshow mode by @tech00exploere in #29918

    fix(web): use Container component for responsive admin maintenance la… by @tech00exploere in #29917

    fix(server): updated default CSP config to support videos from V3 player by @l0ll098 in #29830

    fix(server): workflow date filter, make end date inclusive by @kigrup in #29876

    fix(web): URI encode slug and reduce confusion for users by @meesfrensel in #29796

    fix(web): clear birth date by @danieldietzler in #29959

    fix(server): disable heif security limit by @mertalev in #29954

    fix: zero byte image uploads by @rrrockey in #29426

    fix(server): return workflow steps in ascending order by @benbeckford in #29999

    fix(mobile): update album creation to use user-defined name from dialog by @LeLunZ in #30002

    fix: long press share quality override preference settings by @alextran1502 in #30030

    fix(web): align ContextMenu z-index with design-system token by @tech00exploere in #30015

    fix(web): refresh folder view after asset deletion by @tech00exploere in #29899

    fix: do not show the whats new page on fresh login by @shenlong-tanwen in #30072

    fix(mobile): prevent crash on video widget dispose by @agg23 in #30078

    fix(web): attach file picker input to DOM so iOS Safari fires change … by @mrxder in #29660

    fix: timebuckets locked permissions by @danieldietzler in #30066

    fix: search statistics locked folder permissions by @danieldietzler in #30063

    fix(web): fix Country/State filters when set to Unknown by @compscitwilight in #30026

    fix(server): file uploads for files with extension only filenames by @compscitwilight in #30024

    fix(mobile): stop double close animation when dismissing an asset by @santoshakil in #29413

    fix(mobile): back up files moved into a watched folder on android by @santoshakil in #29872

    fix(web): lens model search by @jrasm91 in #30088

    fix(mobile): add album picker to the partner view bottom sheet by @santoshakil in #30099

    fix(mobile): prevent duplicate album creation during submission by @LeLunZ in #30003

    fix(mobile): properly group download tasks for Live Photos by @agg23 in #29952

    fix(mobile): show real error when an asset can't be added to an album by @santoshakil in #29754

    fix(mobile): treat wired ethernet as unmetered on ios by @santoshakil in #29351

    fix(server): send id_token_hint on OIDC logout by @lorypota in #29720

    fix(mobile): refresh asset stack after deleting viewer item by @PeterOmbodi in #28164

    fix: limit ocr overlay to images by @YarosMallorca in #30116

    fix: disable slideshow crossfade on reduced motion by @YarosMallorca in #29826

    fix(mobile): map unresponsive after viewing asset by @YarosMallorca in #27036

    fix(mobile): send date-only value for memories query param by @ajuijas in #30049

    fix: admin user details responsive layout by @YarosMallorca in #30114

    fix: backup delay translation key parsing by @YarosMallorca in #30112

    fix(web): use correct date field for shift-click range in Recently Added by @okxint in #30071

    fix(server): dissolve stack when its non-primary assets are deleted by @justadityaraj in #29354

    fix: always set extension from provided file by @bo0tzz in #29839

    fix: locked view and asset view provider by @shenlong-tanwen in #30136

    fix(mobile): birthday picker date order follows locale by @santoshakil in #29419

    fix(web): restore correct back route when opening person asset via direct URL by @okxint in #30129

    fix(web): mirror asset viewer navigation icons in RTL by @noboike in #30151

    fix(mobile): allow URL validation to pass when scheme is not provided by @agg23 in #30142

    fix: run background tasks in root isolate by @shenlong-tanwen in #30101

    fix(web): mirror onboarding navigation icons in RTL by @noboike in #30158

    fix: min faces user preference by @jrasm91 in #30177

    fix(web): use RTL transform origin in AdaptiveImage by @noboike in #30182

    fix: don't skip person thumbnail generation if ML is disabled by @bo0tzz in #30194

    fix: shared by user detail panel by @danieldietzler in #30187

    fix(mobile): prevent timeline scroll to top on unrelated pages by @agg23 in #30281

    πŸ“š Documentation

    chore(security.txt): bump expired Expires field (RFC 9116) by @kobihikri in #29932

    fix(docs): remove ref to synology channel by @mmomjian in #30051

    fix: hypertext link to example docker-compose.rootless.yml by @upmcplanetracker in #30155

    🌐 Translations

    feat(docs): add bulgarian readme by @nedevski in #29427

    chore(web): update translations by @weblate in #29781

    New Contributors

    @kobihikri made their first contribution in #29932

    @kigrup made their first contribution in #29876

    @yuxincs made their first contribution in #29614

    @cevdetta made their first contribution in #29801

    @mrxder made their first contribution in #29660

    @compscitwilight made their first contribution in #30026

    @nedevski made their first contribution in #29427

    @yamishi13 made their first contribution in #30016

    @lorypota made their first contribution in #29720

    @ImperatorRuscal made their first contribution in #29991

    @ajuijas made their first contribution in #30049

    @justadityaraj made their first contribution in #29354

    @pavel-miniutka made their first contribution in #29939

    @noboike made their first contribution in #30151

    @upmcplanetracker made their first contribution in #30155

    Full Changelog: v3.0.3...v3.1.0

    Original source
  • Similar to immich with recent updates:

  • Jul 27, 2026
    • Date parsed from source:
      Jul 27, 2026
    • First seen by Releasebot:
      Jun 17, 2026
    • Modified by Releasebot:
      Jul 29, 2026
    immich logo

    immich

    v3.1.0

    immich ships v3.1.0

    chore: version v3.1.0

    Original source
  • Jul 15, 2026
    • Date parsed from source:
      Jul 15, 2026
    • First seen by Releasebot:
      Jul 16, 2026
    immich logo

    immich

    v3.0.3

    immich releases v3.0.3 with bug fixes and a new FUTO F-Droid repo publishing path, plus a fix for Live Photos uploaded in the background and several app, web, mobile, server, and translation improvements.

    v3.0.3

    various bug fixes

    we push to our own F-Droid repo at https://app.futo.org/fdroid/repo now. If you're using F-Droid, please pull the application from there from now on

    fixes an issue where LivePhotos upload from the background isn't showing up.

    Note

    In some specific circumstances, newly uploaded Live Photos could have broken thumbnails. If you see any such cases, please run the "missing" job for thumbnails or wait for the respective nightly job to clear it up.

    What's Changed

    πŸš€ Features
    • feat: publish app releases to FUTO F-Droid repo by @bo0tzz in #29804
    πŸ› Bug fixes
    • fix(web): closing plugin method picker selects "unknown" method by @benbeckford in #29784
    • fix: unauthorized album owner update by @danieldietzler in #29883
    • fix: still part of live photo hidden on bg upload by @shenlong-tanwen in #29884
    • fix: system appbar icon color has incorrect color in asset viewer by @alextran1502 in #29885
    • fix: locked visibility in search random endpoint by @danieldietzler in #29887
    • fix(mobile): send a full datetime from the android memories widget by @santoshakil in #29689
    • fix: memory search date validation by @danieldietzler in #29907
    • fix(server): set hvc1 tag when using hwa by @mertalev in #29908
    • fix(mobile): clear zoom state when swapping assets by @agg23 in #29909
    • fix: Ken Burns effect on sliver app bar jittery on Android by @alextran1502 in #29890
    πŸ“š Documentation
    • fix(docs): update fdroid link by @mmomjian in #29797
    • feat: system integrity docs by @danieldietzler in #29911
    🌐 Translations
    • chore(web): update translations by @weblate in #29774
    • fix(mobile): correct person age singular pluralization by @tech00exploere in #29868

    New Contributors

    • @tech00exploere made their first contribution in #29868

    Full Changelog: v3.0.2...v3.0.3

    Original source
  • Jul 14, 2026
    • Date parsed from source:
      Jul 14, 2026
    • First seen by Releasebot:
      Jul 1, 2026
    • Modified by Releasebot:
      Jul 15, 2026
    immich logo

    immich

    v3.0.3

    immich ships v3.0.3.

    chore: version v3.0.3

    Original source
  • Jul 9, 2026
    • Date parsed from source:
      Jul 9, 2026
    • First seen by Releasebot:
      Jul 10, 2026
    immich logo

    immich

    v3.0.2

    immich ships v3.0.2, a patch release that fixes many v3 bugs and adds a new date workflow filter. It also improves accessibility, restores databases more flexibly, and brings several web, mobile, server, and transcription-related fixes.

    v3.0.2

    This patch release addresses various bugs from v3 release and adds an additional filter to workflows

    What's Changed

    🌟 Enhancements

    • fix(web): add ARIA label to ServerStatisticsCard by @tjhorner in #29497
    • feat(server): hls variant configuration by @mertalev in #29613
    • feat: user agnostic database restore by @danieldietzler in #29512
    • feat(server): date workflow filter by @benbeckford in #29040

    πŸ› Bug fixes

    • fix: re-add gCastEnabled negation by @bo0tzz in #29499
    • fix: downmix audio to stereo to fix broken channel layout by @lukasdotcom in #29485
    • fix: live transcoding when viewing from a link share by @lukasdotcom in #29471
    • fix: web search timeline visibility by @danieldietzler in #29518
    • fix(web): missing i18n strings by @wonsukchoi in #29612
    • fix: chinese browser locales recognition by @danieldietzler in #29622
    • chore: improve added to album messages by @danieldietzler in #29641
    • fix(mobile): fix 10-bit heic and avif colors on android by @santoshakil in #29631
    • fix(mobile): match iOS scroll to top and tabbar scroll (#28469) by @agg23 in #29705
    • fix: wrap migrations in transaction by @shenlong-tanwen in #29664
    • fix: oauth account linking by @danieldietzler in #29624
    • fix: incorrect grouping of recently added assets by @benbeckford in #29666
    • fix: integrity checks checksum pagination by @danieldietzler in #29516
    • fix(mobile): missing crop options and rotation scaling by @bwees in #29645
    • fix(mobile): properly handle live photos locally by @agg23 in #29462
    • fix: integrity checks dto validation by @danieldietzler in #29621
    • fix(mobile): http request handling after isolate death by @mertalev in #29714
    • fix: do not log out on automatic url switch by @shenlong-tanwen in #29715
    • fix(server): stream ffprobe packets by @mertalev in #29723
    • fix: search metadata for album shared links by @danieldietzler in #29742
    • fix(web): clear asset selection when search context changes by @khanguyen74 in #29738
    • fix(mobile): update timeline args on layout constraint changes by @santoshakil in #29653
    • fix: iso date parsing for three digit years by @danieldietzler in #29739
    • fix: missing files integrity checks by @danieldietzler in #29737
    • fix(mobile): play videos from search results and folder view by @santoshakil in #29693
    • fix(web): recursively unnest class arrays by @meesfrensel in #29755
    • fix: emit album update event when uploading assets through shared link by @danieldietzler in #29757
    • fix(web): always initialize language manager to set lang and dir by @meesfrensel in #29696

    πŸ“š Documentation

    • chore: update docs with v3 tags by @alextran1502 in #29312
    • fix(docs): use correct heading name for DB dump by @track0x1 in #29483
    • feat(docs): add Malayalam language support in README files by @jinskjoy in #29593
    • fix(docs): clarify version policy by @mmomjian in #29654

    🌐 Translations

    • chore(web): update translations by @weblate in #29415

    New Contributors

    • @tjhorner made their first contribution in #29497
    • @wonsukchoi made their first contribution in #29612
    • @track0x1 made their first contribution in #29483
    • @jinskjoy made their first contribution in #29593
    • @khanguyen74 made their first contribution in #29738

    Full Changelog: v3.0.1...v3.0.2

    Original source
  • Jul 2, 2026
    • Date parsed from source:
      Jul 2, 2026
    • First seen by Releasebot:
      Jul 3, 2026
    immich logo

    immich

    v3.0.1

    immich fixes mobile album display and adds a recently added link in the web sidebar.

    v3.0.1

    Fixes a bug that causes albums don't show up in the mobile app

    What's Changed

    πŸš€ Features

    • feat(web): recently added link in sidebar by @benbeckford in #29039

    πŸ› Bug fixes

    • fix: albums broken on v2 mobile clients by @shenlong-tanwen in #29446
    • fix: setting input field description spacing for description snippet by @danieldietzler in #29433

    🌐 Translations

    • chore(web): update translations by @weblate in #29410

    Full Changelog: v3.0.0...v3.0.1

    Original source
  • Jul 2, 2026
    • Date parsed from source:
      Jul 2, 2026
    • First seen by Releasebot:
      Jul 3, 2026
    immich logo

    immich

    v3.0.0

    immich releases v3.0.0 with major mobile, web, and server upgrades, including non-destructive mobile editing, workflows, stronger background backups, integrity checks, a Recently Added view, new video playback and transcoding, OCR, and Android gallery support.

    v3.0.0
    Welcome to Immich v3.0.0!
    After months of hard work from the team and our amazing contributors, we're thrilled to announce the next major version of Immich: v3.0.0! πŸŽ‰
    Breaking changes
    This release includes several breaking changes; read the full migration guide here. It's worth mentioning that many of the breaking changes are updates to API endpoints and affect only third-party tools that integrate with Immich's API. For the vast majority of users, updating works exactly as it always has.
    How to update
    Warning
    v3.0.0 drops support for pgvecto.rs. If you run Immich before v1.133.0 and haven't done the migration step yet, see the migration guide here. https://docs.immich.app/install/upgrading/#migrating-to-vectorchord
    First, update the IMMICH_VERSION in your .env file to v3:

    • IMMICH_VERSION=v2
    • IMMICH_VERSION=v3
      Then run the usual update commands:
      docker compose pull && docker compose up -d
      Release candidates
      If you missed it, v3.0.0 was the first time we used release candidates, also known as prereleases. Release candidates are tested but not yet official releases of Immich, and they allow us to find and fix any outstanding bugs before a final release. If you would like to be notified about release candidates directly through Immich, you can change the release channel from "Stable" to "Release candidate" in the Admin settings > Version check options (here).
      New Merch
      As part of this release, we're happy to announce we also have some new swag for you!
      Kids clothing: For those who are likely the reason for your Immich library's size
      Colored embroidery: We now have clothes with a full color embroidered Immich logo
      Check it out now at https://immich.store!
      Highlights
      Now, let's get right into all the new features in this release:
      Mobile non-destructive editing
      Workflows (preview)
      Background backup improvement
      Recently added page
      Integrity checks
      Slideshow on mobile app
      HLS and real-time video transcoding (preview)
      New video player for web
      Open photo in Immich as gallery on Android
      OCR on mobile app
      Upload asset directly to album on the mobile app
      Option to select image size when sharing on the mobile app
      Timeline performance improvement for browsing a large amount of assets in a single month
      Mobile non-destructive editing
      This is a follow-up to Image Editing on the web, which was released in v2.5.0. This feature allows you to make non-destructive edits to your photos inside of Immich. Until now, the mobile editor used a completely different system that created new assets instead of editing the photo in place.
      With this update, we bring a new, easier-to-use editor to mobile devices that has the same features as the web version. You can now edit photos directly in the mobile app, including cropping, rotating, and adjusting your images without ever touching the original file. Similar to the web, edits are non-destructive, so you can revisit or revert them at any time. You can even make edits on mobile and then adjust them on the web later!
      Some features from the previous mobile editing implementation have been removed including:
      Recoloring photos
      Editing live photos
      Editing local assets
      We have plans to bring some of these capabilities back in future releases.
      Workflows (preview)
      The first preview of Workflows is here! Workflows let you automate actions in your library by chaining triggers, filters, and actions together with a drag-and-drop builder. This is the foundation for many exciting automations to come, and we'd love your feedback as we continue building on it.
      You can access the feature from Utilities > Workflows on the web.
      From there, you can either create a new blank workflow or browse the premade templates to get a basic understanding of how workflows can be used.
      Workflows editor
      In the workflows editor, you can switch between the Visual or JSON editor. The visual editor is nice for building out the workflow; the JSON editor is nice for sharing and receiving workflow content from others.
      In each workflow, there is a trigger and a sequence of steps.
      Trigger: this is the entry point of each workflow; when the trigger occurs, the steps are evaluated.
      Steps: they include Filters (conditions) and Actions (effects); they can be combined to produce the desired effect of the use case you aim for.
      Sharing a workflow
      You can share the workflow you made with others in two ways: text and JSON. Text is nice for sharing on a forum or for show-and-tell content. JSON is nice for others to make an exact copy of your workflow's configuration.
      You can copy the text in the workflows summary panel on the lower right of the screen
      You can share the JSON content from the copy workflows button in the app bar, switch to the JSON editor, or use the Show schema button in the context menu in the workflows list
      Note
      Please use this discussion thread to propose new ideas of triggers and actions. We are looking for extensive feedback and suggestions from you all.
      Background backup improvements
      Background backup on Android is now significantly more reliable. Previously, the background backup on Android was limited to newly taken photos. Now, the app uses a new periodic task scheduler, which allows you to upload your entire library in the background, and it plays nicer with Android's background execution limits, properly cleans up tasks, and warns you when battery optimization and notification settings might interfere with backups.
      On iOS, the background refresh task now runs its sync and upload work in parallel, so uploads actually start within the short time window iOS allows.
      Recently added page
      A new "Recently Added" page on the web and mobile lets you browse your library sorted by when assets were added to Immich, rather than when they were taken. This makes it easier to find what's new when browsing a new batch of imports. You can find the new page in the "Explore" tab on the web and in the "Search" tab on mobile.
      Integrity checks
      The maintenance page has gotten a new addition: integrity reports! Immich will scan its directories on your file system, and compare it to what it has stored in its database. If there are deviations, they will be surfaced as
      untracked, if there is a file in Immich's directories that Immich does not know of
      missing, if Immich references a file in its database that does not exist in that place (anymore)
      a checksum mismatch, if the checksum of the file on disk does not match the checksum Immich has stored for that file. Typically, this would happen through file corruption but could also be the result of a bad rename.
      You can configure when and how long the job runs each night.
      Slideshow (mobile)
      The slideshow experience comes to mobile! You can now sit back and let your photos and videos play across the screen, just like on the web.
      HLS and Real-Time Video transcoding (preview)
      Immich can now transcode videos on-the-fly without needing to generate offline transcodes. This has been a long-requested feature with many benefits:
      Quality switching (both manual and automatic)
      Transcoding to the best codecs supported by the client
      Lower storage overhead when offline transcoding is disabled
      HDR for compatible clients (not implemented yet)
      Remuxing rather than transcoding the original when bandwidth allows it (not implemented yet)
      Please note that this feature is still experimental and can change behavior from version to version. It's currently only implemented in the web app, with the mobile app implementation in progress.
      To enable real-time transcoding, go to the video transcoding settings (scroll down). Offline transcoding isn't directly affected by enabling it, so if you'd like to disable offline transcoding, you should also adjust the transcode policy.
      Note
      For assets imported prior to v3, you will also need to re-run Metadata Extraction in the job panel for them to be re-processed.
      Keep in mind that your server needs to be powerful enough to transcode in real-time for this feature to work well. Hardware acceleration is recommended, but not required, when using this feature.
      New video player for web
      A new custom video player on the web app ensures all your devices share the same controls and layout, matching the Immich design. Some basic functions, like changing the playback rate, are available. This should also fix a lot of the problems on iOS, where the OS's controls are hidden behind the Immich navbar.
      Open photos in Immich as a gallery on Android
      Immich can now act as a gallery/image viewer app on Android. Tap a photo or video in another app, choose Immich, and it opens directly in the asset viewer with options to share the file or upload it to your library.
      This is the first iteration of the feature, and refinements to how Immich recognizes files that are already in your library are on the way
      OCR on the mobile app
      The asset viewer now has a toggle that highlights recognized text in a photo, and you can select and copy it directly from the image.
      Upload assets directly to an album on mobile
      You can now upload local photos directly to an album in the mobile app, including from the asset bottom sheet, instead of uploading first and organizing later. A small change that removes a lot of friction from the backup-and-organize flow.
      Select image size when sharing on mobile
      When sharing photos from the mobile app, you can now choose the image size before sending; it is handy for keeping shared files small for messaging apps while preserving the option to share at full quality when needed.
      You can change the default behavior in the App Settings > Preferences
      You can also pick the option when sharing on-the-fly by long pressing the Share button
      Timeline performance Improvements
      Browsing months with a large number of assets is now dramatically smoother and prevents the browser tab from locking up when your instance encounters that scenario.
      Support Immich
      If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app or our merchandise at https://immich.store
      What's Changed
      🚨 Breaking Changes
      refactor!: migrate class-validator to zod by @timonrieger in #26597
      refactor!: remove replace asset by @jrasm91 in #27022
      refactor!: remove my shared link dto by @jrasm91 in #27023
      chore!: remove deprecated env variables by @jrasm91 in #27802
      chore!: remove getRandom api endpoint by @bwees in #27780
      chore!: remove unused token response param by @jrasm91 in #27805
      refactor: yeet old timeline by @shenlong-tanwen in #27666
      chore!: remove old timeline sync endpoints by @jrasm91 in #27804
      chore!: remove deviceId and deviceAssetId by @danieldietzler in #27818
      chore!: rename API key schemas by @jrasm91 in #27828
      chore!: remove without assets by @jrasm91 in #27835
      fix: oauth issuerUrl validation by @bo0tzz in #27848
      fix!: do not allow insecure oauth requests by default by @bo0tzz in #27844
      fix!: set duration to null when not present by @meesfrensel in #26982
      chore!: remove /api/server/theme endpoint by @jrasm91 in #27880
      chore!: migrate album owner to album_user by @danieldietzler in #27467
      refactor!: change number to integer types by @timonrieger in #27912
      refactor(server)!: move correlationId to X-Correlation-ID response header by @timonrieger in #28139
      refactor(server)!: remove redundant error and statusCode fields from error responses by @timonrieger in #28140
      chore(server)!: drop pgvecto.rs support by @mertalev in #28159
      chore!: duration in milliseconds by @mertalev in #28003
      refactor(server)!: sanitize error messages to avoid leaking resource details by @timonrieger in #28154
      refactor(server)!: structured validation error responses by @timonrieger in #28204
      feat(server)!: add isOwned filter to albums API by @timonrieger in #28213
      chore(ml)!: require numpy 2.4 by @mertalev in #28158
      fix(deps): update dependency nestjs-otel to v8 by @renovate[bot] in #27863
      chore(ml)!: remove deprecated envs by @mertalev in #28326
      chore(server)!: remove libopus enum by @mertalev in #28325
      refactor!: remove asset faces from AssetResponseDto by @bwees in #27779
      refactor(server)!: drop empty string to null conversion by @timonrieger in #28808
      refactor(server)!: remove changeExpiryTime by @timonrieger in #28816
      refactor!: disallow star rating < 1 by @meesfrensel in #27896
      fix!: search endpoints visibility can be omitted by @danieldietzler in #29385
      πŸ«₯ Deprecated Changes
      refactor(server): deprecate PUT routes in favor of PATCH by @timonrieger in #28859
      πŸ”’ Security
      fix: run profile picture through thumbnail pipeline by @bo0tzz in #27890
      πŸš€ Features
      feat: mobile editing by @bwees in #25397
      feat: album map markers endpoint by @jrasm91 in #27830
      feat(server): added backchannel logout api endpoint by @santanoce in #26235
      feat(server): add OIDC logout URL override option by @LJspice in #27389
      feat: android periodic work manager task by @shenlong-tanwen in #23563
      feat(web): custom video player controls by @meesfrensel in #26183
      feat(web): add full-path search mode to UI by @mws-weekend-projects in #26758
      feat: recently added assets page by @benbeckford in #28272
      feat(mobile): slideshow view by @benbeckford in #28421
      feat(mobile): "Add Tags" asset multiselect option by @benjamonnguyen in #26269
      feat: workflows & plugins by @jrasm91 in #26727
      feat(server): hls with real-time transcoding by @mertalev in #28230
      feat(web): hls player by @mertalev in #28312
      feat(mobile): Android. Immich as a gallery / image viewer app by @PeterOmbodi in #26109
      feat: user upload heatmap by @bondeabhijeet in #28593
      feat(mobile): ocr support by @YarosMallorca in #26523
      feat: geolocation workflow filter by @benbeckford in #28961
      feat: image quality option in sharing by @alextran1502 in #28918
      feat: integrity check jobs (missing files, untracked files, checksums) by @insertish in #24205
      feat: new feature message by @alextran1502 in #29388
      🌟 Enhancements
      feat(web): persist state of file path information in details panel by @cratoo in #27770
      feat: commands by @jrasm91 in #27546
      feat: upgrade immich/ui by @jrasm91 in #27792
      feat: filter users on share by @OdinOxin in #27732
      fix(server): render storage template date/time tokens in UTC (#24350) by @migpovrap in #26917
      feat(web): lazy load library and server statistics by @etnoy in #26406
      feat: sort users alphabetically when adding to album by @OdinOxin in #27731
      feat: auth logout page by @jrasm91 in #27831
      chore: improve randomness of /search/random endpoint by @StevenMassaro in #27531
      feat: dynamic languages by @jrasm91 in #27869
      feat: cache shared link by @danieldietzler in #27889
      feat(server): add configurable OAuth prompt parameter by @sparsh985 in #26755
      feat(server): add MPO file type support by @git-akihakune in #27963
      feat(mobile): action bottom sheet on map timeline by @YarosMallorca in #27515
      feat(server): track video metadata by @mertalev in #28023
      feat(enhancement): Navigate stack with up and down arrow keys by @cratoo in #27854
      fix(web): migrate people management component to page, enabling tooltips by @SkyDev125 in #26971
      chore(mobile): add box shadow to asset details by @uhthomas in #27510
      feat: hide hidden person from memories by @sakshamchawla in #20877
      feat(mobile): increased tap area on video player overlay by @YarosMallorca in #27269
      feat(web): Add metadata overlay to slideshow by @timonrieger in #24627
      feat(web): add individual filter removal from search result chips by @timonrieger in #28166
      feat(mobile): trash/restore all by @YarosMallorca in #28116
      feat: display more info in asset viewer by @alextran1502 in #24630
      feat(server): allow subpaths for machine learning URL by @gnojus in #28427
      feat(ui): Shared URL input configuration by @Lauritz-Tieste in #27105
      refactor: enhance shared link UI and functionality by @Lauritz-Tieste in #26464
      feat: upload and add local asset directly to album by @alextran1502 in #28123
      feat: Selectable metadata in duplicates utility with diffing by @ollioddi in #26328
      fix: improve form control focus visibility by @Caltsic in #28512
      feat: command for user pages by @alextran1502 in #28554
      refactor: use ControlBar UI Library component by @bwees in #28567
      feat: workflow template by @alextran1502 in #28553
      feat(mobile): improve downloading algorithm for sharing by @YarosMallorca in #27312
      feat: search by album name and id by @jrasm91 in #28672
      feat: upload local assets to album from bottom sheet by @alextran1502 in #28531
      feat: places in context search by @timonrieger in #28768
      feat: minimum face count per user by @timjonez in #27452
      feat: show notification and battery optimization warning by @shenlong-tanwen in #26610
      feat: workflows drag and drop enhancements by @danieldietzler in #28764
      feat(mobile): min face count per-user by @YarosMallorca in #28805
      refactor(server): allow -1 rating again by @timonrieger in #28886
      feat(web): warn before overwriting existing locations in geolocation utility by @yoshovski in #28840
      feat: warn if microservices worker is missing by @bo0tzz in #28869
      fix(web): show album names in duplicate review by @meesfrensel in #29080
      feat: keyboard seeking for new video player by @danieldietzler in #29208
      feat(web): Add text-white-shadow to elements and increase the shadows effect by @Vogeluff in #29165
      feat: webhook workflow action by @benbeckford in #29258
      feat: integrity checks admin settings by @danieldietzler in #29406
      πŸ› Bug fixes
      fix(web): center images in RTL layouts (#27678) by @Nicolas-micuda-becker in #27753
      fix(mobile): add keys for person tiles in search by @YarosMallorca in #27689
      fix(web): selection clearing on preview by @YarosMallorca in #27702
      fix: asset multi select download shortcut by @danieldietzler in #27784
      fix(web): add partner photo to album from multiselect by @YarosMallorca in #27767
      fix: redirect original by @danieldietzler in #27759
      fix: make web build stage deterministic by @bo0tzz in #27823
      fix(web): svelte regression - cancel video preview fetch when bind:this is cleared early by @midzelis in #27713
      fix(web): stale adaptive image when original overlays preview by @midzelis in #27621
      fix(mobile): readonly redirect when not logged in by @YarosMallorca in #27728
      fix(web): close edit faces panel on Escape key press by @midzelis in #27519
      fix(oauth): normalize email claim to lowercase and trim before account lookup and registration by @timdobras in #26841
      fix(web): use event for zooming out after opening face editor by @meesfrensel in #27789
      fix: sanitize filenames before adding to zip by @bo0tzz in #27893
      fix(server): require at least one field to be set when updating memory by @fredfloydd in #27842
      fix(web): compute hashes for uploads in chunks by @fredfloydd in #27878
      fix(web): fix stale album page load by @fredfloydd in #27825
      fix(web): prevent interaction with detail panel behind person side panel by @midzelis in #27309
      fix: show neon light by @alextran1502 in #27994
      fix(mobile): zero exposure by @YarosMallorca in #28017
      fix(mobile): clear local data on forced logout by @LeLunZ in #27957
      fix(mobile): enable autoplay for motion photos in video viewer by @LeLunZ in #27961
      fix(mobile): thumbnail transition to asset viewer by @LeLunZ in #27850
      fix: jump to timeline on new auto_router update by @alextran1502 in #28022
      fix(mobile): delete assets on trash empty, Android by @PeterOmbodi in #26070
      fix(ml): handle empty/corrupt images in face detection by @yosit in #27391
      fix(web): refresh memories hourly by @meesfrensel in #28114
      fix(web): large files: better handling of asset deletions by @meesfrensel in #28117
      fix(web): double video playback on map timeline by @YarosMallorca in #28090
      fix(mobile): suppress asset stack UI in trash timeline by @PeterOmbodi in #26536
      fix(web): timeline scroll when pressing back from stacked asset by @Snowknight26 in #28163
      fix(server): selectively apply metadata bitstream filter for video thumbnails by @pinhao in #28162
      fix(web): fix shared link /s/photos.* navigation after password login by @meesfrensel in #27788
      fix(ml): respect time zone for logs in cuda container by @AyaanMAG in #28155
      fix: librknnrt permissions in machine-learning by @DavidTheFighter in #28216
      fix(server): validate duplicate group ownership before dismissal by @timonrieger in #28221
      fix(web): correct timeline yesterday label across month boundaries by @michelheusschen in #28183
      fix(mobile): show lens info without lens name by @benbeckford in #28234
      fix: stale person name after merge by @danieldietzler in #28222
      fix(web): shared album avatars opening modal by @meesfrensel in #26719
      fix(mobile): prevent asset loading issues when changing page or when closing memories by @LeLunZ in #27596
      fix(mobile): correct filter default and UI desync in similar photos search by @TheBestX11 in #27516
      fix(server): hide isFavorite from partner asset sync stream by @timonrieger in #28035
      fix(mobile): restore notification plugin init by @santoshakil in #28284
      fix(mobile): mounted check before setState in album sync action by @santoshakil in #28300
      fix(mobile): avoid duplicate assets in album view by @stfn42 in #28152
      fix(mobile): Deduplicate assets in person view timeline by @thowdev in #26723
      fix(deployment): remove unneeded volume by @mmomjian in #28307
      fix: mobile upload duration type by @alextran1502 in #28362
      fix: deep link for assets when asset viewer already open by @bwees in #27971
      fix: kekab icon colors in light mode by @shenlong-tanwen in #28366
      fix: indexes on remote_asset_entity by @shenlong-tanwen in #28264
      fix(mobile): clear linkedRemoteAlbumId in reset() so FK refs dont dangle by @santoshakil in #28382
      fix: ignore icc profile make and model by @jrasm91 in #28412
      fix(mobile): don't block app open on slow validateAccessToken by @santoshakil in #28405
      fix(mobile): add restore option to trashed assets by @inesiscosta in #27442
      fix(mobile): use correct delete action by @ByteSizedMarius in #26575
      fix(server): dedupe database backup jobs by @rdeaton in #28341
      fix(mobile): cronet buffer overflow on compressed thumbnails by @santoshakil in #28439
      fix(mobile): cronet thumbnail buffer overflow regression from #28439 by @santoshakil in #28450
      fix(mobile): mounted check in ThumbnailTile hero flight listener by @santoshakil in #28451
      fix(mobile): don't force-unwrap nil localizedTitle in ios getAlbums by @santoshakil in #28452
      fix(web): work around Chrome HDR image seam lines during zoom by @midzelis in #27715
      fix(ios): respect status bar scroll to top in timeline views by @agg23 in #28469
      fix(mobile): asset viewer stuck on spinner after rotation by @LeLunZ in #28019
      fix(web): timeline stuttering with many assets in 1 day by @benbeckford in #28509
      fix(mobile): preserve zoom level during image loading and live photo playback by @LeLunZ in #27960
      fix(ml): stabilize MIGraphX inference by @fabianwimberger in #28444
      fix: await sync asset v2 by @bwees in #28569
      fix: strip metadata from timeline responses for shared links without exif sharing by @danieldietzler in #28644
      fix: Refresh local album overview page after asset deletion by @Lauritz-Tieste in #28586
      fix(server): prevent locked assets from leaking to partners by @timonrieger in #28652
      refactor(web): replace per-asset viewport proximity with day-tier active indices by @midzelis in #28597
      fix: timeline scroll flicker by @alextran1502 in #28653
      fix: api repositories using stale endpoint by @shenlong-tanwen in #28667
      fix: disallow cross origin/non http protocols for continueUrl on login by @bwees in #28706
      fix(web): skip thumbhash fade for offscreen thumbnails by @midzelis in #27335
      fix(web): prevent partner assets from being selected in geolocation utility by @okxint in #28737
      fix(mobile): invisible ink splashes in asset sheet by @timonrieger in #28756
      fix!: unauthorized face creation by @shenlong-tanwen in #28561
      fix(mobile): proper background task cleanup by @mertalev in #28694
      fix(cli): prevent out-of-memory on file upload due to undici storing the request body by @moversity in #28723
      fix: error log on aborted uploads by @jrasm91 in #28806
      fix(server): respect timezone in iso date string encoding by @timonrieger in #28810
      test: fix tests when OpenVINO provider is available by @nekowinston in #28802
      fix(mobile): run iOS bg task phases in parallel by @santoshakil in #28293
      fix: error handling by @jrasm91 in #28843
      fix: cross isolate drift watchers by @shenlong-tanwen in #28862
      fix: reload timeline on group by setting change by @shenlong-tanwen in #28864
      fix(web): use irot/imir tags for HEIF Orientation by @joojoooo in #27820
      fix: detail panel faces reactivity issues by @danieldietzler in #28910
      fix(server): hide isFavorite from album asset sync stream by @timonrieger in #28923
      fix(mobile): show memory and folder dates in local time by @santoshakil in #28941
      fix(mobile): show error when creating an album fails by @santoshakil in #28942
      fix(mobile): add album picker to archive bottom sheet by @santoshakil in #28953
      fix: normalize diacritics in person name search in Web & Mobile by @pedrovieira in #28887
      fix(web): Prevent face editor from closing when dismissing tag confirmation by @pedrovieira in #28900
      fix(mobile): map timeline layout crash by @YarosMallorca in #28878
      fix(mobile): deduplicate people in asset details panel by @santoshakil in #28972
      fix(mobile): keep timezone when editing asset date time by @santoshakil in #28978
      fix(mobile): stale details after editing asset date by @santoshakil in #28977
      fix(mobile): show albums whose assets are all trashed by @santoshakil in #28985
      fix(mobile): give android notification channels proper names by @santoshakil in #28986
      fix: Improving scroll behavior on image stacks that overflow the screen by @BlankCanvasStudio in #28885
      fix(web): focus on scrollable element on load by @timonrieger in #29004
      fix(mobile): show like and comment options on album photo deep links by @santoshakil in #29020
      fix(web): correctly handle person search with more than 100 results by @maxinegardenas in #29002
      fix(web): prevent upload status panel from overlapping album action bar by @okxint in #29044
      fix(web): error loading image state by @bwees in #29058
      fix(web): show asset arrows by @timonrieger in #29010
      fix(server): hide partner archived asset locations from map by @timonrieger in #29028
      fix: lock transcoding options by @timonrieger in #29076
      fix(server): do not merge metadata when multiple duplicates are kept by @timonrieger in #29035
      fix: integrity report checksum query by @danieldietzler in #29136
      fix: map settings by @danieldietzler in #29134
      fix: too strict cron expression validation by @danieldietzler in #29138
      fix(web): respect local timezone when building date range for search by @okxint in #29128
      fix(web): language selector by @meesfrensel in #29065
      fix: update datetimeRelative description to minutes instead of seconds by @meesfrensel in #29137
      fix: video thumbnail quality sharing by @bwees in #29104
      fix(mobile): stop sync albums crashing on the main isolate by @santoshakil in #29133
      fix(mobile): show memories with no showAt/hideAt in the timeline lane by @santoshakil in #29158
      fix(mobile): keep toasts off the dynamic island when keyboard is open by @santoshakil in #29159
      fix(server): skip existing users when sharing albums by @jeevan6996 in #28884
      fix: web i18n by @danieldietzler in #29175
      fix(web): shift+click on GPS asset extends range selection in geolocation utility by @timonrieger in #29022
      fix(server): allow non-utc datetime offsets by @timonrieger in #29186
      fix: remove local-only step ids from workflow json by @danieldietzler in #29188
      fix: asset type filter by @danieldietzler in #29190
      fix(mobile): prevent duplicate login pages for unauthenticated share intent warm start by @olildu in #29054
      fix(mobile): refresh memories on resume and day change by @santoshakil in #28983
      fix(mobile): re-lock locked folder when the app is backgrounded by @santoshakil in #29089
      fix(mobile): endless spinner on album selection when device has no albums by @santoshakil in #28994
      fix: rc version check by @danieldietzler in #29194
      fix: detail panel people reactivity and iterator consumption by @danieldietzler in #29250
      fix(server): use VBR for QSV so the max bitrate is respected by @aclerici38 in #29240
      fix: ignore external libraries for integrity report checksum check by @danieldietzler in #29248
      fix(web): remove map's fullscreen button by @meesfrensel in #29192
      refactor: use SemVer classes for version compatability message by @bwees in #29056
      fix: sync backfill by @jrasm91 in #29267
      fix(mobile): force AssetViewerPage recreation on repeated view intents by @okxint in #29235
      fix(mobile): blank notifications page after enabling notifications by @santoshakil in #29232
      fix(mobile): app doesn't exit full-screen mode by @YarosMallorca in #29301
      fix(mobile): only toggle backup from the switch, not the whole row by @santoshakil in #29236
      fix(mobile): hide video thumbnail when video is ready by @santoshakil in #29012
      fix(mobile): apply exif orientation to android raw photos by @santoshakil in #29337
      fix(server): face region coordinates parsing by @djbravo06 in #29333
      feat: honor album access permissions in search endpoints by @danieldietzler in #29352
      fix: version compatability check by @bwees in #29405
      πŸ“š Documentation
      fix(docs): instructions on how to use local immich ui by @YarosMallorca in #27813
      fix(docs): helmet file affected containers by @mmomjian in #27939
      fix(docs): Update Tailscale free tier user and device limits by @Hakuin123 in #28151
      docs: update rocm installation instructions by @aigarius in #25434
      fix(docs): document upgrade-insecure-requests default by @meesfrensel in #28279
      fix(docs): missing colon in config file doc by @SuperSandro2000 in #28313
      fix: update server-commands subcommand list by @bo0tzz in #28402
      feat(docs): add fixed subnet guide for Synology to prevent firewall issues by @racehd in #26554
      chore(docs): update FAQ with profile picture change instructions by @tvangemert in #28634
      chore: update documentation to use mise commands by @timonrieger in #28515
      fix(docs): v3 bumps by @mmomjian in #29007
      docs(server): clarify AssetBulkUploadCheckItem.id is a correlation token by @timonrieger in #29141
      docs(mobile-app): add Play App Signing certificate hash by @tlvince in #29168
      docs(mobile): point users towards shared setup docs by @agg23 in #29078
      docs: clarify duplicate exif merging intent by @timonrieger in #29203
      fix(docsc): v3 bump by @mmomjian in #29246
      docs: MS smtp guide by @jameskimmel in #29289
      🌐 Translations
      feat: latest language requests by @danieldietzler in #28858
      chore: update translations by @weblate in #27764
      feat: languages by @danieldietzler in #29088
      chore(web): update translations by @weblate in #29036
      chore(web): update translations by @weblate in #29162
      fix: turkish readme translation by @MuySup in #29234
      chore(web): update translations by @weblate in #29204
      chore(web): update translations by @weblate in #29290
      chore(web): update translations by @weblate in #29347
      New Contributors
      @OdinOxin made their first contribution in #27732
      @migpovrap made their first contribution in #26917
      @StevenMassaro made their first contribution in #27531
      @timdobras made their first contribution in #26841
      @santanoce made their first contribution in #26235
      @fredfloydd made their first contribution in #27842
      @sparsh985 made their first contribution in #26755
      @LJspice made their first contribution in #27389
      @git-akihakune made their first contribution in #27963
      @shaun0927 made their first contribution in #27900
      @yosit made their first contribution in #27391
      @Hakuin123 made their first contribution in #28151
      @pinhao made their first contribution in #28162
      @AyaanMAG made their first contribution in #28155
      @DavidTheFighter made their first contribution in #28216
      @benbeckford made their first contribution in #28234
      @bhugh made their first contribution in #27884
      @SkyDev125 made their first contribution in #26971
      @aigarius made their first contribution in #25434
      @mws-weekend-projects made their first contribution in #26758
      @TheBestX11 made their first contribution in #27516
      @sakshamchawla made their first contribution in #20877
      @santoshakil made their first contribution in #28284
      @stfn42 made their first contribution in #28152
      @thowdev made their first contribution in #26723
      @SuperSandro2000 made their first contribution in #28313
      @racehd made their first contribution in #26554
      @inesiscosta made their first contribution in #27442
      @gnojus made their first contribution in #28427
      @rdeaton made their first contribution in #28341
      @agg23 made their first contribution in #28469
      @ollioddi made their first contribution in #26328
      @Caltsic made their first contribution in #28512
      @fabianwimberger made their first contribution in #28444
      @tvangemert made their first contribution in #28634
      @BlankCanvasStudio made their first contribution in #28620
      @pneuly made their first contribution in #28610
      @timjonez made their first contribution in #27452
      @moversity made their first contribution in #28723
      @nekowinston made their first contribution in #28802
      @bondeabhijeet made their first contribution in #28593
      @joojoooo made their first contribution in #27820
      @pedrovieira made their first contribution in #28887
      @yoshovski made their first contribution in #28840
      @maxinegardenas made their first contribution in #29002
      @jeevan6996 made their first contribution in #28884
      @rizwanpatel-gif made their first contribution in #29172
      @olildu made their first contribution in #29054
      @MuySup made their first contribution in #29234
      @aclerici38 made their first contribution in #29240
      @jullanggit made their first contribution in #29308
      @jameskimmel made their first contribution in #29289
      @djbravo06 made their first contribution in #29333
      Full Changelog: v2.7.5...v3.0.0
    Original source
  • Jun 27, 2026
    • Date parsed from source:
      Jun 27, 2026
    • First seen by Releasebot:
      Jun 28, 2026
    immich logo

    immich

    v3.0.0-rc.4

    immich ships v3.0.0-rc.4.

    chore: version v3.0.0-rc.4

    Original source
  • Jun 26, 2026
    • Date parsed from source:
      Jun 26, 2026
    • First seen by Releasebot:
      Jun 27, 2026
    immich logo

    immich

    v3.0.0-rc.3

    immich ships v3.0.0-rc.3 as a release candidate that fixes bugs and adds refinements across the server, web, and mobile apps, including keyboard seeking for the new video player, webhook workflow actions, and several stability and usability fixes.

    Warning

    Disclaimer

    This is a release candidate, not a stable release. It is subject to change and may contain bugs or breaking changes. As always, make sure you have a backup of your database and library before upgrading to this version.

    This third release candidate v3.0.0-rc.3 fixes bugs and issues that were found in the last release candidate.

    Release notes

    Work-in-progress release notes can be found here:

    https://pr-558.dev.immich.app/blog/v3.0.0-release

    Server

    To use this RC version on the server, update the IMMICH_VERSION in your .env file:

    IMMICH_VERSION=v3.0.0-rc.3
    or
    IMMICH_VERSION=v3-rc
    

    Then pull and restart:

    docker compose pull &amp;&amp; docker compose up -d
    

    Mobile

    To use this RC version on the mobile app, follow the appropriate link for your platform:

    Android

    You can download the APK in the release note below, or tap on "Join the beta" from the Google Play Immich page

    iOS

    The iOS app is available via Testflight: https://testflight.apple.com/join/JTSTucBd

    If you run into any issues, please report them on GitHub so we can address them before the final release. Thank you for helping us test!

    And as always, bugs are fixed, and many other improvements also come with this release.

    What's Changed

    🌟 Enhancements

    • feat: keyboard seeking for new video player by @danieldietzler in #29208
    • feat(web): Add text-white-shadow to elements and increase the shadows effect by @Vogeluff in #29165
    • feat: webhook workflow action by @benbeckford in #29258

    πŸ› Bug fixes

    • fix: detail panel people reactivity and iterator consumption by @danieldietzler in #29250
    • fix(server): use VBR for QSV so the max bitrate is respected by @aclerici38 in #29240
    • fix: ignore external libraries for integrity report checksum check by @danieldietzler in #29248
    • fix(web): remove map's fullscreen button by @meesfrensel in #29192
    • refactor: use SemVer classes for version compatability message by @bwees in #29056
    • fix: sync backfill by @jrasm91 in #29267
    • fix(mobile): force AssetViewerPage recreation on repeated view intents by @okxint in #29235
    • fix(mobile): blank notifications page after enabling notifications by @santoshakil in #29232
    • fix(mobile): app doesn't exit full-screen mode by @YarosMallorca in #29301
    • fix(mobile): only toggle backup from the switch, not the whole row by @santoshakil in #29236

    πŸ“š Documentation

    • docs: clarify duplicate exif merging intent by @timonrieger in #29203
    • fix(docsc): v3 bump by @mmomjian in #29246
    • docs: MS smtp guide by @jameskimmel in #29289

    🌐 Translations

    • fix: turkish readme translation by @MuySup in #29234
    • chore(web): update translations by @weblate in #29204
    • chore(web): update translations by @weblate in #29290

    New Contributors

    • @MuySup made their first contribution in #29234
    • @aclerici38 made their first contribution in #29240
    • @jullanggit made their first contribution in #29308
    • @jameskimmel made their first contribution in #29289

    Full Changelog: v3.0.0-rc.2...v3.0.0-rc.3

    Original source
  • Jun 18, 2026
    • Date parsed from source:
      Jun 18, 2026
    • First seen by Releasebot:
      Jun 19, 2026
    immich logo

    immich

    v3.0.0-rc.2

    immich ships v3.0.0-rc.2 release candidate.

    chore: version v3.0.0-rc.2

    Original source
  • Jun 17, 2026
    • Date parsed from source:
      Jun 17, 2026
    • First seen by Releasebot:
      Jun 18, 2026
    immich logo

    immich

    v3.0.0-rc.1

    immich releases v3.0.0-rc.1, a release candidate focused on bug fixes and polish across web, mobile, and server, plus a few enhancements like better album names in duplicate review and updated translations. It also warns users to back up before upgrading.

    v3.0.0-rc.1 β€” Release Candidate

    Warning

    Disclaimer

    This is a release candidate, not a stable release. It is subject to change and may contain bugs or breaking changes. As always, make sure you have a backup of your database and library before upgrading to this version.

    This second release candidate v3.0.0-rc.1 fixes bugs and issues that were found in the last release candidate. You can now use the release candidate tag v3-rc for all the prereleases under v3.

    Release notes

    Work-in-progress release notes can be found here:

    https://pr-558.dev.immich.app/blog/v3.0.0-release

    Server

    To use this RC version on the server, update the IMMICH_VERSION in your .env file:

    IMMICH_VERSION=v3.0.0-rc.1
    

    or

    IMMICH_VERSION=v3-rc
    

    Then pull and restart:

    docker compose pull &amp;&amp; docker compose up -d
    

    Mobile

    To use this RC version on the mobile app, follow the appropriate link for your platform:

    Android

    You can download the APK in the release note below, or tap on "Join the beta" from the Google Play Immich page

    iOS

    Use the TestFlight link or scan the QR Code https://testflight.apple.com/join/JTSTucBd

    If you run into any issues, please report them on GitHub so we can address them before the final release. Thank you for helping us test!

    What's Changed

    🌟 Enhancements

    • fix(web): show album names in duplicate review by @meesfrensel in #29080

    πŸ› Bug fixes

    • fix(mobile): show like and comment options on album photo deep links by @santoshakil in #29020
    • fix(web): correctly handle person search with more than 100 results by @maxinegardenas in #29002
    • fix(web): prevent upload status panel from overlapping album action bar by @okxint in #29044
    • fix(web): error loading image state by @bwees in #29058
    • fix(web): show asset arrows by @timonrieger in #29010
    • fix(server): hide partner archived asset locations from map by @timonrieger in #29028
    • fix: lock transcoding options by @timonrieger in #29076
    • fix(server): do not merge metadata when multiple duplicates are kept by @timonrieger in #29035
    • fix: integrity report checksum query by @danieldietzler in #29136
    • fix: map settings by @danieldietzler in #29134
    • fix: too strict cron expression validation by @danieldietzler in #29138
    • fix(web): respect local timezone when building date range for search by @okxint in #29128
    • fix(web): language selector by @meesfrensel in #29065
    • fix: update datetimeRelative description to minutes instead of seconds by @meesfrensel in #29137
    • fix: video thumbnail quality sharing by @bwees in #29104
    • fix(mobile): stop sync albums crashing on the main isolate by @santoshakil in #29133
    • fix(mobile): show memories with no showAt/hideAt in the timeline lane by @santoshakil in #29158
    • fix(mobile): keep toasts off the dynamic island when keyboard is open by @santoshakil in #29159

    πŸ“š Documentation

    • docs(server): clarify AssetBulkUploadCheckItem.id is a correlation token by @timonrieger in #29141

    🌐 Translations

    • feat: languages by @danieldietzler in #29088
    • chore(web): update translations by @weblate in #29036

    New Contributors

    • @maxinegardenas made their first contribution in #29002

    Full Changelog: v3.0.0-rc.0...v3.0.0-rc.1

    Original source
Releasebot

Curated by the Releasebot team

Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.

Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.