[Bug]: CBR file fails to load certain pages #2723

Open
opened 2026-02-20 02:59:51 -05:00 by deekerman · 13 comments
Owner

Originally created by @mdb17 on GitHub (Feb 5, 2025).

What happened?

When scrolling through an uploaded CBR file certain pages will get stuck on "please wait..." flipping to the next page works but going back to the page that gets stuck will never load. I am seeing this across multiple CBR files and clients. When examining the pages that it hangs up on it is not the same page number across the different files. I took this a step furth and compared the pages it hangs up on to the percentage complete of the CBR file and didn't find any correlation between files.

What did you expect to happen?

I expect to be able to scroll through each page without issue.

Steps to reproduce the issue

  1. Open the book
  2. For the book UI to load
  3. Swipe through the pages until "please wait..." appears

Audiobookshelf version

2.19.0

How are you running audiobookshelf?

Other (list in "Additional Notes" box)

What OS is your Audiobookshelf server hosted from?

Linux

If the issue is being seen in the UI, what browsers are you seeing the problem on?

Edge

Logs

2025-02-05 12:45:54.851
INFO
[LibraryItemController] User "mbell" requested download for item "The Walking Dead Vol. 01" ebook at "/mnt/media/Comics/Robert Kirkman/The Walking Dead/The Walking Dead Vol. 01- Days Gone Bye (2004)/The Walking Dead Vol. 01- Days Gone Bye (2004).cbr"

2025-02-05 12:48:45.432
INFO
[LibraryItemController] Downloaded ebook file "/mnt/media/Comics/Robert Kirkman/The Walking Dead/The Walking Dead Vol. 01- Days Gone Bye (2004)/The Walking Dead Vol. 01- Days Gone Bye (2004).cbr"

2025-02-05 12:51:24.277
DEBUG
[ApiCacheManager] mediaProgress.afterUpdate: Clearing cache

2025-02-05 12:51:28.301
DEBUG
[ApiCacheManager] mediaProgress.afterUpdate: Clearing cache

2025-02-05 12:51:29.901
DEBUG
[ApiCacheManager] mediaProgress.afterUpdate: Clearing cache

2025-02-05 12:51:31.795
DEBUG
[ApiCacheManager] mediaProgress.afterUpdate: Clearing cache

2025-02-05 12:52:28.862
DEBUG
Set Log Level to DEBUG

2025-02-05 12:52:28.895
DEBUG
[ApiCacheManager] Array.afterUpsert: Clearing cache. 

Additional Notes

I have also tried Firefox and experienced the hang up on the exact same pages as well as with different users. I can use the same files in other readers without issue.

Originally created by @mdb17 on GitHub (Feb 5, 2025). ### What happened? When scrolling through an uploaded CBR file certain pages will get stuck on "please wait..." flipping to the next page works but going back to the page that gets stuck will never load. I am seeing this across multiple CBR files and clients. When examining the pages that it hangs up on it is not the same page number across the different files. I took this a step furth and compared the pages it hangs up on to the percentage complete of the CBR file and didn't find any correlation between files. ### What did you expect to happen? I expect to be able to scroll through each page without issue. ### Steps to reproduce the issue 1. Open the book 2. For the book UI to load 3. Swipe through the pages until "please wait..." appears ### Audiobookshelf version 2.19.0 ### How are you running audiobookshelf? Other (list in "Additional Notes" box) ### What OS is your Audiobookshelf server hosted from? Linux ### If the issue is being seen in the UI, what browsers are you seeing the problem on? Edge ### Logs ```shell 2025-02-05 12:45:54.851 INFO [LibraryItemController] User "mbell" requested download for item "The Walking Dead Vol. 01" ebook at "/mnt/media/Comics/Robert Kirkman/The Walking Dead/The Walking Dead Vol. 01- Days Gone Bye (2004)/The Walking Dead Vol. 01- Days Gone Bye (2004).cbr" 2025-02-05 12:48:45.432 INFO [LibraryItemController] Downloaded ebook file "/mnt/media/Comics/Robert Kirkman/The Walking Dead/The Walking Dead Vol. 01- Days Gone Bye (2004)/The Walking Dead Vol. 01- Days Gone Bye (2004).cbr" 2025-02-05 12:51:24.277 DEBUG [ApiCacheManager] mediaProgress.afterUpdate: Clearing cache 2025-02-05 12:51:28.301 DEBUG [ApiCacheManager] mediaProgress.afterUpdate: Clearing cache 2025-02-05 12:51:29.901 DEBUG [ApiCacheManager] mediaProgress.afterUpdate: Clearing cache 2025-02-05 12:51:31.795 DEBUG [ApiCacheManager] mediaProgress.afterUpdate: Clearing cache 2025-02-05 12:52:28.862 DEBUG Set Log Level to DEBUG 2025-02-05 12:52:28.895 DEBUG [ApiCacheManager] Array.afterUpsert: Clearing cache. ``` ### Additional Notes I have also tried Firefox and experienced the hang up on the exact same pages as well as with different users. I can use the same files in other readers without issue.
Author
Owner

@nichwall commented on GitHub (Feb 5, 2025):

Can you look at the logs in the browser to see if you are getting any errors?

@nichwall commented on GitHub (Feb 5, 2025): Can you look at the logs in the browser to see if you are getting any errors?
Author
Owner

@mdb17 commented on GitHub (Feb 5, 2025):

I edited my post above with the logs. I reproduced the issue by opening a book, scrolling through till it hung and then scrolling back.

@mdb17 commented on GitHub (Feb 5, 2025): I edited my post above with the logs. I reproduced the issue by opening a book, scrolling through till it hung and then scrolling back.
Author
Owner

@advplyr commented on GitHub (Feb 6, 2025):

That is the server logs. The comic is opened in the browser so the errors would be in the browser console

@advplyr commented on GitHub (Feb 6, 2025): That is the server logs. The comic is opened in the browser so the errors would be in the browser console
Author
Owner

@mdb17 commented on GitHub (Feb 7, 2025):

audiobookshelf-1738938123896.log

Here are the browser logs. I can also share the CBR file if that helps.

@mdb17 commented on GitHub (Feb 7, 2025): [audiobookshelf-1738938123896.log](https://github.com/user-attachments/files/18707903/audiobookshelf-1738938123896.log) Here are the browser logs. I can also share the CBR file if that helps.
Author
Owner

@advplyr commented on GitHub (Feb 7, 2025):

VM100:1  Uncaught (in promise) SyntaxError: "[object Object]" is not valid JSON
    at JSON.parse (<anonymous>)
    at l._storageChangeDispatcher (content.js:2:898238)
    at _storageChangeDispatcherCallback (content.js:2:897686)
_storageChangeDispatcher @ content.js:2
_storageChangeDispatcherCallback @ content.js:2
VM101:1  Uncaught (in promise) SyntaxError: "[object Object]" is not valid JSON
    at JSON.parse (<anonymous>)
    at l._storageChangeDispatcher (content.js:2:898238)
    at _storageChangeDispatcherCallback (content.js:2:897686)
_storageChangeDispatcher @ content.js:2
_storageChangeDispatcherCallback @ content.js:2

You'll have to share the comic file in order to debug this. You can share it to advplyr@protonmail.com or to me on Discord.

Related #811

@advplyr commented on GitHub (Feb 7, 2025): ```bash VM100:1 Uncaught (in promise) SyntaxError: "[object Object]" is not valid JSON at JSON.parse (<anonymous>) at l._storageChangeDispatcher (content.js:2:898238) at _storageChangeDispatcherCallback (content.js:2:897686) _storageChangeDispatcher @ content.js:2 _storageChangeDispatcherCallback @ content.js:2 VM101:1 Uncaught (in promise) SyntaxError: "[object Object]" is not valid JSON at JSON.parse (<anonymous>) at l._storageChangeDispatcher (content.js:2:898238) at _storageChangeDispatcherCallback (content.js:2:897686) _storageChangeDispatcher @ content.js:2 _storageChangeDispatcherCallback @ content.js:2 ``` You'll have to share the comic file in order to debug this. You can share it to advplyr@protonmail.com or to me on Discord. Related #811
Author
Owner

@mdb17 commented on GitHub (Feb 7, 2025):

I sent a message on discord with a link to the file.

@mdb17 commented on GitHub (Feb 7, 2025): I sent a message on discord with a link to the file.
Author
Owner

@advplyr commented on GitHub (Feb 7, 2025):

I was able to reproduce the issue

@advplyr commented on GitHub (Feb 7, 2025): I was able to reproduce the issue
Author
Owner

@advplyr commented on GitHub (Feb 7, 2025):

I'm not sure the exact cause of the Parsing filters is unsupported error that gets thrown but if you search for it it has been reported many times specifically relating to extracting rar files.

We use libarchive on the frontend which is way out of date now. I think I tried updating this with issues a while ago but can try updating it again to see if it resolves it.

It could be that the CBR file was created with a version of rar or a feature that isn't supported by the version of libarchive we are using.

I was able to get the comic working though by extracting the rar file and used NanaZip to compress to a zip file. Then rename the zip file to .cbz.

@advplyr commented on GitHub (Feb 7, 2025): I'm not sure the exact cause of the `Parsing filters is unsupported` error that gets thrown but if you search for it it has been reported many times specifically relating to extracting rar files. We use libarchive on the frontend which is way out of date now. I think I tried updating this with issues a while ago but can try updating it again to see if it resolves it. It could be that the CBR file was created with a version of rar or a feature that isn't supported by the version of libarchive we are using. I was able to get the comic working though by extracting the rar file and used NanaZip to compress to a zip file. Then rename the zip file to `.cbz`.
Author
Owner

@advplyr commented on GitHub (Feb 7, 2025):

On the server side we switched to using unrar-js instead of libarchive for rar files because of this issue. And we discussed implementing this on the client side also.
in https://github.com/advplyr/audiobookshelf/pull/3422 and https://github.com/advplyr/audiobookshelf/pull/3435

@advplyr commented on GitHub (Feb 7, 2025): On the server side we switched to using unrar-js instead of libarchive for rar files because of this issue. And we discussed implementing this on the client side also. in https://github.com/advplyr/audiobookshelf/pull/3422 and https://github.com/advplyr/audiobookshelf/pull/3435
Author
Owner

@advplyr commented on GitHub (Feb 7, 2025):

It is worth mentioning here that I think we should attempt changing the comic reader to fetch the extracted images from the server one at a time instead of doing the extracting in the browser.

The main benefit to the current method is the mobile apps can easily support offline comics. However, we could have the server convert the CBR files to CBZ when downloading on mobile and then don't have to implement rar extraction at all.

@advplyr commented on GitHub (Feb 7, 2025): It is worth mentioning here that I think we should attempt changing the comic reader to fetch the extracted images from the server one at a time instead of doing the extracting in the browser. The main benefit to the current method is the mobile apps can easily support offline comics. However, we could have the server convert the CBR files to CBZ when downloading on mobile and then don't have to implement rar extraction at all.
Author
Owner

@sandman98321 commented on GitHub (Feb 27, 2025):

Can confirm I am getting the same basic error, only typically the cover will render without error, but subsequent pages are either blank or render a small portion of the image on the page.

7a643d4.js:1 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'load')
    at 7a643d4.js:1:7930
    at m (402ad0e.js:2:79604)
    at Generator.<anonymous> (402ad0e.js:2:80954)
    at Generator.next (402ad0e.js:2:80033)
    at r (402ad0e.js:2:72329)
    at f (402ad0e.js:2:72532)
    at 402ad0e.js:2:72591
    at new Promise (<anonymous>)
    at 402ad0e.js:2:72472
    at 7a643d4.js:1:8331

in my browser console. No errors on the server side.
This is happening for files recently converted from .kfx to .epub using Calibre. Other normal books converted in the same way render just fine, it only seems to be the comics.

Would it be helpful for me to send you one of the epubs in Discord?

Image

@sandman98321 commented on GitHub (Feb 27, 2025): Can confirm I am getting the same basic error, only typically the cover will render without error, but subsequent pages are either blank or render a small portion of the image on the page. ``` 7a643d4.js:1 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'load') at 7a643d4.js:1:7930 at m (402ad0e.js:2:79604) at Generator.<anonymous> (402ad0e.js:2:80954) at Generator.next (402ad0e.js:2:80033) at r (402ad0e.js:2:72329) at f (402ad0e.js:2:72532) at 402ad0e.js:2:72591 at new Promise (<anonymous>) at 402ad0e.js:2:72472 at 7a643d4.js:1:8331 ``` in my browser console. No errors on the server side. This is happening for files recently converted from .kfx to .epub using Calibre. Other normal books converted in the same way render just fine, it only seems to be the comics. Would it be helpful for me to send you one of the epubs in Discord? ![Image](https://github.com/user-attachments/assets/72eac572-6132-4254-a71c-ab5b6dc2c3bc)
Author
Owner

@dethorpe commented on GitHub (Apr 13, 2025):

I think I am experiencing the same. Only the first page loads of a given CBR. Recompressing it as cbz shows normal behavior. Would it help to try a sample file on your deployment?

@dethorpe commented on GitHub (Apr 13, 2025): I think I am experiencing the same. Only the first page loads of a given CBR. Recompressing it as cbz shows normal behavior. Would it help to try a sample file on your deployment?
Author
Owner

@Rathlord commented on GitHub (May 17, 2025):

Just adding on that I also have this issue- happy to provide any logs or test files as needed. Definitely a big issue for me.

@Rathlord commented on GitHub (May 17, 2025): Just adding on that I also have this issue- happy to provide any logs or test files as needed. Definitely a big issue for me.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/audiobookshelf#2723
No description provided.