What Went Wrong?
Some CBX books show "No pages available" when opened in the web reader, even though the files are valid archives containing images.
After investigating, I found that the affected files are CBZ archives containing GIF images. In mixed-format archives (e.g., some JPG + some GIF pages), only non-GIF pages are displayed — GIF pages are silently dropped from the page list.
How Can We Reproduce This?
I created a test CBZ (format_test.cbz) containing one page for each image format — JPG, JPEG, PNG, WebP, GIF, BMP, AVIF, and HEIC — to test what the reader actually supports.
Results in Chrome and Brave:
| Page |
Format |
Result |
| 1 |
JPG |
✅ Displayed |
| 2 |
JPEG |
✅ Displayed |
| 3 |
PNG |
✅ Displayed |
| 4 |
WebP |
✅ Displayed |
| 5 |
GIF |
❌ Not in page list |
| 6 |
BMP |
❌ Not in page list |
| 7 |
AVIF |
✅ Displayed |
| 8 |
HEIC |
⚠️ In page list but renders as broken image |
What Should Have Happened?
These CBZ files open and display correctly in other readers such as CDisplayEx, and GIF/BMP are renderable by all major browsers, so I expected the web reader to display them as well.
Screenshots or Error Messages (Optional)
HEIC appears in the list but cannot be rendered by the browser (Chrome, Brave).
A CBZ containing only GIF images shows "No pages available"(Chrome, Brave).
Any Ideas on How to Fix This? (Optional)
The issue is in CbxReaderService.java line 42:
private static final String[] SUPPORTED_IMAGE_EXTENSIONS = {".jpg", ".jpeg", ".png", ".webp", ".avif", ".heic"};
This list is missing .gif and .bmp. The isImageFile() method uses this array to filter archive entries, so GIF/BMP images are excluded from the page list entirely.
Suggested fix:
private static final String[] SUPPORTED_IMAGE_EXTENSIONS = {".jpg", ".jpeg", ".png", ".webp", ".avif", ".heic", ".gif", ".bmp"};
Since the server streams raw bytes directly to the browser without any decoding or conversion, adding these formats has zero performance cost and requires no new dependencies.
Your Setup
Grimmory Version: nightly-20260323-c3c3e20
Browser: Chrome, Brave
Installation : Docker(with Dokploy)
Before Submitting
What Went Wrong?
Some CBX books show "No pages available" when opened in the web reader, even though the files are valid archives containing images.
After investigating, I found that the affected files are CBZ archives containing GIF images. In mixed-format archives (e.g., some JPG + some GIF pages), only non-GIF pages are displayed — GIF pages are silently dropped from the page list.
How Can We Reproduce This?
I created a test CBZ (
format_test.cbz) containing one page for each image format — JPG, JPEG, PNG, WebP, GIF, BMP, AVIF, and HEIC — to test what the reader actually supports.Results in Chrome and Brave:
What Should Have Happened?
These CBZ files open and display correctly in other readers such as CDisplayEx, and GIF/BMP are renderable by all major browsers, so I expected the web reader to display them as well.
Screenshots or Error Messages (Optional)
HEIC appears in the list but cannot be rendered by the browser (Chrome, Brave).
A CBZ containing only GIF images shows "No pages available"(Chrome, Brave).
Any Ideas on How to Fix This? (Optional)
The issue is in
CbxReaderService.javaline 42:This list is missing
.gifand.bmp. TheisImageFile()method uses this array to filter archive entries, so GIF/BMP images are excluded from the page list entirely.Suggested fix:
Since the server streams raw bytes directly to the browser without any decoding or conversion, adding these formats has zero performance cost and requires no new dependencies.
Your Setup
Grimmory Version: nightly-20260323-c3c3e20
Browser: Chrome, Brave
Installation : Docker(with Dokploy)
Before Submitting