RAW thumbnails can work in a browser but fail on mobile because the two clients may request different previews, derivatives, sizes, or decoder paths.
Start with one working RAW file and one failing RAW file from the same library. Compare the exact thumbnail request made by web and mobile, then separate embedded-camera previews from server-rendered derivatives and local mobile cache. The original RAW file may be perfectly healthy while only one presentation path is broken.
Confirm Mobile Requests a Different Preview
Open the same RAW asset in the web interface and mobile app while capturing application logs or request paths. Compare requested thumbnail size, extension, response code, and whether the mobile client falls back to the original.
Many RAW files contain an embedded JPEG preview; a web client can display that embedded image while another client asks the server for a separately generated derivative.
If the two clients request different objects, stop treating the symptom as one universal RAW-decoding failure. The next test belongs to the derivative or client path that only mobile uses.
Compare Embedded Preview and Server Rendering
Extract or inspect the RAW fileโs embedded preview, then compare it with a server-generated thumbnail. A healthy embedded JPEG and a failed generated thumbnail point to different code paths.
Photo-management tools document distinct RAW rendering behavior for embedded JPEG previews and rendered RAW data, which explains why one thumbnail path can succeed without validating the other.
If only generated thumbnails fail, inspect the server decoder and derivative job. If only the embedded preview is malformed, test another file from the same camera before changing the server.
Check the RAW Variant, Not Just the Extension
Record camera model, firmware, RAW compression mode, bit depth, and whether the failing files are native RAW, DNG, or a phone-specific RAW variant. Compare against one working sample.
Even DNG can contain different preview and image structures, so DNG preview differences is a better reminder than assuming every file with one extension reaches the client through the same decoding path.
A camera-specific split is useful evidence. Update or replace only the decoder component that cannot handle that variant, or generate a compatible derivative while preserving the original RAW file.
Clear Only the Broken Mobile Cache Layer
If server logs show successful thumbnail generation, test the mobile asset with cache disabled, after a targeted app-cache clear, or on another device. Do not purge the serverโs entire thumbnail store first.
Phone RAW workflows such as ProRAW processing path add another processing layer before display, so client decoder and cached derivative behavior can differ from a desktop browser even for the same original file.
If a second mobile device works, focus on local cache or app version. If every mobile device fails on the same derivative URL, return to the server response rather than repeatedly reinstalling clients.
Regenerate One Derivative and Re-Test
Delete or invalidate only the failed derivative for one controlled RAW asset using the applicationโs supported workflow, then let the server rebuild it. Record the new object size and response.
The related ZimaSpace guide to Immich family photo library provides the adjacent boundary: preserve originals and make derivative regeneration disposable rather than turning a preview issue into a photo-loss event.
Declare the issue fixed only when the same RAW file displays on web and mobile after cache expiry, app restart, and a fresh server request. If the regenerated derivative still fails, preserve it for decoder-level comparison.
Frequently Asked Questions
Why can the browser thumbnail work when the mobile app shows nothing?
The two clients may request different derivatives, sizes, formats, or cache entries. A valid browser preview therefore does not prove the mobile preview object is healthy.
Should RAW files be converted to JPEG just for mobile viewing?
Not as a first fix. Test whether embedded previews or generated derivatives are the failing layer before duplicating or converting the original archive.
Can one camera model trigger the problem while another does not?
Yes. RAW formats and embedded preview choices differ by camera model and firmware, so compare one working and one failing file rather than treating all RAW files as equivalent.
Support & Tips
More to Read

Can Plex Share a GPU With Another Docker Container?
Plex and another container can often access the same GPU, but you must test driver support, device mapping, video-engine load, memory, and recovery behavior.

How to Tell Whether a Plex Error Comes From the Client or Server
Reproduce the same item on another client, compare the session path, then collect server evidence only after scope tells you where the failure actually...

How to Configure Plex Cache and Transcode Temporary Storage
Protect persistent Plex state while placing transcode temp files on suitable local storage, then verify cleanup, free space, and restart behavior.

