Skip to content
Back

Images/Videos in storage appearing broken after upgrading to 1.9.6

  • 0
  • 3
  • Self Hosted
  • Flutter
  • Storage
5 Aug, 2026, 11:04

I am running into a storage issue after upgrading my self-hosted Appwrite instance , all of my previously uploaded images and videos are now showing as broken icons in the Appwrite console and failing to render in Flutter app

TL;DR
Issue: Images and videos in storage appear as broken after upgrading to Appwrite 1.9.6. Solution: The problem stemmed from the upgrade process adding extra backslashes to the encryption key in the .env file. Editing the .env file to use the older key value (without the extra backslashes), then restarting Appwrite resolved the broken previews. It was suggested to create a GitHub issue to alert users about this bug in the web installer.
5 Aug, 2026, 11:14

hmm that's strange,

can you tell me :

  • if your not using S3 ? if you are using S3, are you sure the configuration is correct ?
  • if is there error logs in the appwrite container ? (if yes could you share thoses logs ?)
  • are the files in the volumes ?
5 Aug, 2026, 11:21

no im not using s3

here appwrite logs

TypeScript
appwrite  | http.request · 9.4ms · 4b304811
appwrite  | 
appwrite  |   level              error
appwrite  |   http.method        GET
appwrite  |   storage.cache.key  4ebc5323877d2d3fb8fa8c0063268eea
appwrite  |   storage.cache.hit  false
appwrite  |   http.path          /v1/storage/buckets/:bucketId/files/:fileId/preview
appwrite  |   http.response.code 400
appwrite  | 
appwrite  |   Appwrite\Extend\Exception: Zero size image string passed
appwrite  |     at /usr/src/code/src/Appwrite/Platform/Modules/Storage/Http/Buckets/Files/Preview/Get.php:245
appwrite  |     at /usr/src/code/vendor/utopia-php/http/src/Http/Http.php:645
appwrite  |     at /usr/src/code/vendor/utopia-php/http/src/Http/Http.php:864
appwrite  |     at /usr/src/code/vendor/utopia-php/http/src/Http/Http.php:791
appwrite  |     ... 3 more
appwrite  | 
appwrite  | ────────────────────────────────────────────────────────────
appwrite  | 
appwrite  | Warning: gzdecode(): data error in /usr/src/code/vendor/utopia-php/compression/src/Compression/Algorithms/GZIP.php on line 41
appwrite  | http.request · 7.3ms · d189a174
appwrite  | 
appwrite  |   level              error
appwrite  |   http.method        GET
appwrite  |   storage.cache.key  e95c5d26fa3b601f7368807605a11423
appwrite  |   storage.cache.hit  false
appwrite  |   http.path          /v1/storage/buckets/:bucketId/files/:fileId/preview
appwrite  |   http.response.code 400
appwrite  | 
appwrite  |   Appwrite\Extend\Exception: Zero size image string passed
appwrite  |     at /usr/src/code/src/Appwrite/Platform/Modules/Storage/Http/Buckets/Files/Preview/Get.php:245
appwrite  |     at /usr/src/code/vendor/utopia-php/http/src/Http/Http.php:645
appwrite  |     at /usr/src/code/vendor/utopia-php/http/src/Http/Http.php:864
appwrite  |     at /usr/src/code/vendor/utopia-php/http/src/Http/Http.php:791
appwrite  |     ... 3 more
appwrite  | 
appwrite  | ────────────────────────────────────────────────────────────
5 Aug, 2026, 11:23

seems to be a 400 error, so maybe your request is bad.

could you share the preview request your making (if possible both from the SDK/Code and the Network request from the devtools or add a debug logs with the url, headers and maybe body if present if your using a mobile app)

5 Aug, 2026, 11:24

like if i understand the error correctly you seems to not pass width/height (or pass them as empty value) which then fails to display

5 Aug, 2026, 11:28

and regarding the files ? are they present in the volume ?

5 Aug, 2026, 11:29

Yes the files exist on disk in the storage volume

1
5 Aug, 2026, 11:29

okay im sending it..

5 Aug, 2026, 11:33
5 Aug, 2026, 11:33
5 Aug, 2026, 11:34

oh, it's not the same request ... and this one is 200, not 400

5 Aug, 2026, 11:35

also i'm wondering, do you use compression ?

5 Aug, 2026, 11:36

this is directly from appwrite console

5 Aug, 2026, 11:39

ok so the fact that preview is throwing 400 and view is showing 200 tells me there is something bad happening either with the Compression and/or the Encryption.

5 Aug, 2026, 11:40

did you change anything after the upgrade ? is the encryption key still passed (does the env from the old an ew version are the same for _APP_OPENSSL_KEY_V1)

5 Aug, 2026, 11:41

Nope, only the default appwrite configuration

5 Aug, 2026, 11:42

No, i just follow the upgrade wizard, no change

5 Aug, 2026, 11:43

tho i really think it's the Encryption key that somehow changed, because of the warn from the GZIP, where is think it try to decompress the image, but it's "data error" so i think it's already broken there.

5 Aug, 2026, 11:44

then very strange, by any chance, do you still have a backup of the older .env and compose before the upgrade ? so we could compare

5 Aug, 2026, 11:45

yes i do have both

5 Aug, 2026, 11:45

could you check if both have the OPENSSL key and if they are the same ?

5 Aug, 2026, 11:46

okay let me see

5 Aug, 2026, 11:48
5 Aug, 2026, 11:52

just to be sure, the Jul 2 is also the same ? (since the two your showing are from Aug 4, today)

also remove them from here, as they are encryption key

1
5 Aug, 2026, 11:52

wait i see something the new have more back slash no ?

Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more