This started about 10 days ago, I thought it was a server issue before realising it was a client one. Images in posts and comments fail to load with the following error
Unknown error
Failed to create image decoder with message 'invalid input'Input contained an error.
It affects 99% of images and I haven't been able to discrern a pattern in the images that load successfully. They have the same formats and URLs as the images that fail to load.
This started happening on 1.72.x, but updating to 1.73.0 has not helped.
I have looked at logcat and found that an error is generated that seems to be related to mime type detection, or heif format loading. Perhaps some changes were done to that code that don't agree with my phone's android 11 install. I haven't done any changes to my phone, and it worked before, so I assume it is a change in the app that triggered this behaviour.
Here is the relevant logcat output when trying to view a jpeg image:
I HeifDecoderImpl: HeifDecoder* createHeifDecoder()
I HeifDecoderImpl: HeifDecoderImpl::HeifDecoderImpl()
I MMParserExtractor: Created(0xb4000078c8a66000)
E MM_OSAL: FileSource::FileSource
E MM_OSAL: FileSource::FileSource m_bEveryThingOK 1
E MMParserExtractor: FileSourceWrapper::New Init returned -1004
E MMParserExtractor: readMetaData - FileSourceWrapper::New returned NULL
E MMParserExtractor: MMParserExtractor::countTracks no tracks
W Utils: did not find mime type
W ExtendedUtils: did not find mime type
W Utils: did not find mime type
W ExtendedUtils: did not find mime type
I HeifDecoderImpl: HeifDecoderImpl::~HeifDecoderImpl()
E ErrorUtils: Unknown throwable android.graphics.ImageDecoder.DecodeException
E ErrorUtils: android.graphics.ImageDecoder$DecodeException: Failed to create image decoder with message 'invalid input'Input contained an error.
E ErrorUtils: at android.graphics.ImageDecoder.nCreate(Native Method)
E ErrorUtils: at android.graphics.ImageDecoder.createFromFile(Unknown Source:19)
E ErrorUtils: at android.graphics.ImageDecoder.access$600(Unknown Source:0)
E ErrorUtils: at android.graphics.ImageDecoder$FileSource.createImageDecoder(Unknown Source:2)
E ErrorUtils: at android.graphics.ImageDecoder.decodeBitmapImpl(Unknown Source:1)
E ErrorUtils: at android.graphics.ImageDecoder.decodeBitmap(Unknown Source:2)
E ErrorUtils: at coil3.decode.b.a(r8-map-id-91472c89a467098dfb73dac40527f712a4c3af1dbf42a37f171cabd4500276b3:84)
E ErrorUtils: at coil3.intercept.a.a(r8-map-id-91472c89a467098dfb73dac40527f712a4c3af1dbf42a37f171cabd4500276b3:160)
E ErrorUtils: at coil3.intercept.EngineInterceptor$execute$executeResult$1.w(r8-map-id-91472c89a467098dfb73dac40527f712a4c3af1dbf42a37f171cabd4500276b3:57)
...
There's more obfuscated calls in the stack trace that I can include if helpful.
Ok, I looked into this again, and I think I know what the issue is. It has little to do with summit. Seems like my instance (and possibly some others) convert images to avif while creating proxy images, and I guess android 11 doesn't support decoding avif properly, or at least my install doesn't.
Example:
original image, 234k png
proxied image, 11kb avif
I actually tested this by trying different accounts before reporting here, but two things happened that made me reach the wrong conclusion. First, when looking at a different instance which doesn't use avif, summit will successfully load the images for posts from the cache, so the avif images still got loaded and showed me errors. Clicking retry on the errors actually loads the images normally.
And then secondly, when testing in signed out mode, summit seems to default to using my lemmy.zip instance which again shows the avif images.
Sorry about this.