nextcloud / nextcloud/ios

[Bug] Maximum compatibility mode removes HDR information from JPEG photos in some cases

Open
#4,018 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Swift
Stars
2.5k
Forks
1k
Avg merge
2d 18h
Merged PRs (30d)
13

Description

Steps to reproduce
  • iOS camera settings set to "maximum compatibility" (saves photos as JPEG)
  • Nextcloud Settings -> Additional settings -> maximum compatibility enabled ("saves images as jpeg if possible")
  1. Take a photo (e.g. a photo of lightbulb (to maximize the HDR effect))
  2. Go to the Nextcloud app and upload the photo to your Nextcloud (or let it upload via auto upload function) => file 1
  3. Switch to the iOS Photos app, select the photo and share it to Nextcloud (and upload it) => file 2
  4. Compare both files in your nextcloud => different file size, HDR is missing in file 1
  5. Now turn off Nextcloud maximum compatibility feature and repeat step 2-4. Both files are equal now
Expected behaviour

Both files should be the same size. Nextcloud's maximum compatibility should leave JPEG files unchanged.

Actual behaviour

1 photo, 2 files, 2 sizes and the auto-uploaded one is missing HDR information.
Image

Environment data

iOS version: iOS 26.2

Nextcloud iOS app version: 33.0.2.1 (c) 2026

Server operating system:

Web server: Apache, nginx

Database: PostgreSQL 15.16

PHP version: 8.3.30

Nextcloud version: 31.0.14

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue in the Nextcloud iOS app with Maximum compatibility enabled, comparing an auto-uploaded JPEG with the same photo shared from the iOS Photos app. Trace the maximum-compatibility JPEG handling used by the upload flow and verify that an existing JPEG retains its HDR information and matches the shared file in size and contents.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
mobile
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.