Skip to content

CBX archives with GIF images show "No pages available" #165

@graypawn

Description

@graypawn

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)

Image

HEIC appears in the list but cannot be rendered by the browser (Chrome, Brave).

Image

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

  • I've searched existing issues and confirmed this bug hasn't been reported yet

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Bug.

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions