When selecting a chapter from the Table of Contents in an ePub file, then tapping a chapter, the page does not change.
Steps to Reproduce the Issue
Open the ABS iOS app
Open an ePub file
Tap the contents button
Tap a chapter number
What was Expected?
The book should advance to the selected chapter
Phone Model
iPhone 15 Pro, iPad Pro (M2)
Phone OS
18.5
Audiobookshelf App Version
iOS App - 0.9.81
Installation Source
Testflight
Additional Notes
No response
Originally created by @GinSoakedBoy on GitHub (May 19, 2025).
### I have verified that the [bug is not already awaiting release](https://github.com/advplyr/audiobookshelf-app/issues?q=is%3Aissue%20label%3A%22awaiting%20release%22)
Yes
### What was the Problem?
When selecting a chapter from the Table of Contents in an ePub file, then tapping a chapter, the page does not change.
### Steps to Reproduce the Issue
1. Open the ABS iOS app
2. Open an ePub file
3. Tap the contents button
4. Tap a chapter number
### What was Expected?
The book should advance to the selected chapter
### Phone Model
iPhone 15 Pro, iPad Pro (M2)
### Phone OS
18.5
### Audiobookshelf App Version
iOS App - 0.9.81
### Installation Source
Testflight
### Additional Notes
_No response_
adam
added the bugwaiting labels 2026-04-24 23:53:51 +02:00
Does the same epub file work in the web browser?
This has usually been due to the epub not being well formed so you can also try converting the epub to epub through Calibre or Sigil to fix the file.
@nichwall commented on GitHub (May 19, 2025):
Does the same epub file work in the web browser?
This has usually been due to the epub not being well formed so you can also try converting the epub to epub through Calibre or Sigil to fix the file.
Yes, the same epub does work on the web interface. I just checked a handful of other books in my library and some work, others don't. Those same books work fine in Apple Books though.
@GinSoakedBoy commented on GitHub (May 19, 2025):
Yes, the same epub does work on the web interface. I just checked a handful of other books in my library and some work, others don't. Those same books work fine in Apple Books though.
Just because it works in a different e-reader does not mean it is well-formed (but good that you checked that). A lot of books, even from publishers, do weird things so running them through something like Calibre will fix a lot of issues.
If you are able to provide the original file (in a DM, don't post it publicly) I can try taking a look at it to see what is different after running it through a converter.
@nichwall commented on GitHub (May 19, 2025):
Can you try running the epub to epub conversion?
Just because it works in a different e-reader does not mean it is well-formed (but good that you checked that). A lot of books, even from publishers, do weird things so running them through something like Calibre will fix a lot of issues.
If you are able to provide the original file (in a DM, don't post it publicly) I can try taking a look at it to see what is different after running it through a converter.
Is there a good tool that I can bath run on all my books that doesn't change the file structure?
(I sent you copy of one of the affected books via Discord)
@GinSoakedBoy commented on GitHub (May 21, 2025):
Is there a good tool that I can bath run on all my books that doesn't change the file structure?
(I sent you copy of one of the affected books via Discord)
Is there a good tool that I can bath run on all my books that doesn't change the file structure?
I believe you can batch convert all books in a folder using Calibre.
(I sent you copy of one of the affected books via Discord)
Thanks! I missed the new message notification.
@nichwall commented on GitHub (May 21, 2025):
> Is there a good tool that I can bath run on all my books that doesn't change the file structure?
I believe you can batch convert all books in a folder using Calibre.
> (I sent you copy of one of the affected books via Discord)
Thanks! I missed the new message notification.
Just FYI, I’ve tried a few other epub readers on iOS and they all work fine with chapters in all my books(including the ABS web interface). It’s just the ABS iOS app that can’t change chapters from the contents in certain books.
@GinSoakedBoy commented on GitHub (May 28, 2025):
Just FYI, I’ve tried a few other epub readers on iOS and they all work fine with chapters in all my books(including the ABS web interface). It’s just the ABS iOS app that can’t change chapters from the contents in certain books.
@GinSoakedBoy sent me the EPUB having an issue with navigation, and I was able to reproduce navigating using the popup TOC not working using Android v0.9.81. After converting this EPUB in Calibre to EPUB again, the popup TOC works in Android. Both versions work in the web client (2.20.0 because this specific dev instance is not updated).
Navigating from the table of contents at the beginning of the epub (not using the popup, just from swiping through the pages) works in both versions in both the web client and in the Android reader.
I extracted both EPUB files, and other than minor changes to files and path updates, the only real difference I see is in the NCX file.
The original epub does not set a playOrder or class property. These exist in the converted epub, The navPoint does not exist in the XHTML table of contents page, so I do not expect it to be related to these properties missing.
Something that seems more suspicious is the original EPUB defines the total page count in the header and also includes a pageList. The converted EPUB does not include a pageList and sets the page count to 0. I suspect this is what is actually causing the NCX navigation to fail, maybe because this is not trying to navigate to a CFI? I am not familiar with how navigating to a new page in an EPUB works.
I do not have more time to play with this tonight, but the next step would be to replace the NCX file with the "converted" NCX and change the paths to work with the directory structure of the original EPUB to see if that is the only thing that needs to change.
@nichwall commented on GitHub (May 29, 2025):
@GinSoakedBoy sent me the EPUB having an issue with navigation, and I was able to reproduce navigating using the popup TOC not working using Android v0.9.81. After converting this EPUB in Calibre to EPUB again, the popup TOC works in Android. Both versions work in the web client (2.20.0 because this specific dev instance is not updated).
Navigating from the table of contents at the beginning of the epub (not using the popup, just from swiping through the pages) works in both versions in both the web client and in the Android reader.
I extracted both EPUB files, and other than minor changes to files and path updates, the only real difference I see is in the NCX file.
The original epub does not set a `playOrder` or `class` property. These exist in the converted epub, The `navPoint` does not exist in the XHTML table of contents page, so I do not expect it to be related to these properties missing.
<details>
<summary> Excerpt of navPoint from original EPUB</summary>
```
<navPoint id="navPoint4">
<navLabel>
<text>PART ONE</text>
</navLabel>
<content src="../Text/p1.xhtml"/>
<navPoint id="navPoint5">
<navLabel>
<text>The Girl</text>
</navLabel>
<content src="../Text/ch01.xhtml"/>
</navPoint>
<navPoint id="navPoint6">
<navLabel>
<text>The Groundskeeper</text>
</navLabel>
<content src="../Text/ch02.xhtml"/>
</navPoint>
```
</details>
<details>
<summary> Excerpt of navPoint from converted EPUB</summary>
```
<navPoint id="uH8lz5eYIPZiAQLu4HFo4s4" playOrder="5" class="chapter">
<navLabel>
<text>PART ONE</text>
</navLabel>
<content src="OEBPS/Text/p1.xhtml"/>
<navPoint id="u5iAvFiGsCMwriFTVIhuWJB" playOrder="6" class="chapter">
<navLabel>
<text>1. The Girl</text>
</navLabel>
<content src="OEBPS/Text/ch01_split_000.xhtml"/>
</navPoint>
<navPoint id="uIYlhdaN2yzPjBuueVeLjp3" playOrder="7" class="chapter">
<navLabel>
<text>2. The Groundskeeper</text>
</navLabel>
<content src="OEBPS/Text/ch02_split_000.xhtml"/>
</navPoint>
```
</details>
Something that seems more suspicious is the original EPUB defines the total page count in the header and also includes a `pageList`. The converted EPUB does not include a `pageList` and sets the page count to 0. I suspect this is what is actually causing the NCX navigation to fail, maybe because this is not trying to navigate to a CFI? I am not familiar with how navigating to a new page in an EPUB works.
<details>
<summary> Header from original EPUB</summary>
```
<head>
<meta content="2" name="dtb:depth"/>
<meta content="443" name="dtb:totalPageCount"/>
<meta content="443" name="dtb:maxPageNumber"/>
</head>
```
</details>
<details>
<summary> Header from converted EPUB</summary>
```
<head>
<meta name="dtb:depth" content="3"/>
<meta name="dtb:generator" content="calibre (8.4.0)"/>
<meta name="dtb:totalPageCount" content="0"/>
<meta name="dtb:maxPageNumber" content="0"/>
</head>
```
</details>
<details>
<summary> PageList from original EPUB</summary>
```
<pageList>
<pageTarget id="navPoint79" type="normal" value="v">
<navLabel>
<text>v</text>
</navLabel>
<content src="../Text/Title.xhtml#pg_v"/>
</pageTarget>
<pageTarget id="navPoint80" type="normal" value="vii">
<navLabel>
<text>vii</text>
</navLabel>
<content src="../Text/ded.xhtml#pg_vii"/>
</pageTarget>
<pageTarget id="navPoint81" type="normal" value="viii">
<navLabel>
<text>viii</text>
</navLabel>
<content src="../Text/toc.xhtml#pg_viii"/>
</pageTarget>
<pageTarget id="navPoint82" type="normal" value="ix">
<navLabel>
<text>ix</text>
</navLabel>
<content src="../Text/toc.xhtml#pg_ix"/>
</pageTarget>
```
</details>
I do not have more time to play with this tonight, but the next step would be to replace the NCX file with the "converted" NCX and change the paths to work with the directory structure of the original EPUB to see if that is the only thing that needs to change.
Does this mean this can be fixed in the iOS app without having to manually convert a bunch of EPUB files?
@GinSoakedBoy commented on GitHub (Jun 6, 2025):
Does this mean this can be fixed in the iOS app without having to manually convert a bunch of EPUB files?
I don't know. It looks like the ABS server would need to repair the ebook files, which is not currently supported (ABS does not modify ebook files), so the simplest solution would be to convert all of the books using Calibre or Sigil. You should be able to automate it with a script so you don't need to manually click through the menu for everything.
@nichwall commented on GitHub (Jun 6, 2025):
I don't know. It looks like the ABS server would need to repair the ebook files, which is not currently supported (ABS does not modify ebook files), so the simplest solution would be to convert all of the books using Calibre or Sigil. You should be able to automate it with a script so you don't need to manually click through the menu for everything.
It's weird since the web app works fine, it's just the mobile app that struggles with it. Plus every other EPUB reader app I've tried it with also works fine with the EPUB files.
@GinSoakedBoy commented on GitHub (Jun 6, 2025):
It's weird since the web app works fine, it's just the mobile app that struggles with it. Plus every other EPUB reader app I've tried it with also works fine with the EPUB files.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @GinSoakedBoy on GitHub (May 19, 2025).
I have verified that the bug is not already awaiting release
Yes
What was the Problem?
When selecting a chapter from the Table of Contents in an ePub file, then tapping a chapter, the page does not change.
Steps to Reproduce the Issue
What was Expected?
The book should advance to the selected chapter
Phone Model
iPhone 15 Pro, iPad Pro (M2)
Phone OS
18.5
Audiobookshelf App Version
iOS App - 0.9.81
Installation Source
Testflight
Additional Notes
No response
@nichwall commented on GitHub (May 19, 2025):
Does the same epub file work in the web browser?
This has usually been due to the epub not being well formed so you can also try converting the epub to epub through Calibre or Sigil to fix the file.
@GinSoakedBoy commented on GitHub (May 19, 2025):
Yes, the same epub does work on the web interface. I just checked a handful of other books in my library and some work, others don't. Those same books work fine in Apple Books though.
@nichwall commented on GitHub (May 19, 2025):
Can you try running the epub to epub conversion?
Just because it works in a different e-reader does not mean it is well-formed (but good that you checked that). A lot of books, even from publishers, do weird things so running them through something like Calibre will fix a lot of issues.
If you are able to provide the original file (in a DM, don't post it publicly) I can try taking a look at it to see what is different after running it through a converter.
@GinSoakedBoy commented on GitHub (May 21, 2025):
Is there a good tool that I can bath run on all my books that doesn't change the file structure?
(I sent you copy of one of the affected books via Discord)
@nichwall commented on GitHub (May 21, 2025):
I believe you can batch convert all books in a folder using Calibre.
Thanks! I missed the new message notification.
@advplyr commented on GitHub (May 23, 2025):
Is this a file issue?
@nichwall commented on GitHub (May 23, 2025):
Have not checked yet. Will update once I get a chance.
@GinSoakedBoy commented on GitHub (May 28, 2025):
Just FYI, I’ve tried a few other epub readers on iOS and they all work fine with chapters in all my books(including the ABS web interface). It’s just the ABS iOS app that can’t change chapters from the contents in certain books.
@nichwall commented on GitHub (May 29, 2025):
@GinSoakedBoy sent me the EPUB having an issue with navigation, and I was able to reproduce navigating using the popup TOC not working using Android v0.9.81. After converting this EPUB in Calibre to EPUB again, the popup TOC works in Android. Both versions work in the web client (2.20.0 because this specific dev instance is not updated).
Navigating from the table of contents at the beginning of the epub (not using the popup, just from swiping through the pages) works in both versions in both the web client and in the Android reader.
I extracted both EPUB files, and other than minor changes to files and path updates, the only real difference I see is in the NCX file.
The original epub does not set a
playOrderorclassproperty. These exist in the converted epub, ThenavPointdoes not exist in the XHTML table of contents page, so I do not expect it to be related to these properties missing.Excerpt of navPoint from original EPUB
Excerpt of navPoint from converted EPUB
Something that seems more suspicious is the original EPUB defines the total page count in the header and also includes a
pageList. The converted EPUB does not include apageListand sets the page count to 0. I suspect this is what is actually causing the NCX navigation to fail, maybe because this is not trying to navigate to a CFI? I am not familiar with how navigating to a new page in an EPUB works.Header from original EPUB
Header from converted EPUB
PageList from original EPUB
I do not have more time to play with this tonight, but the next step would be to replace the NCX file with the "converted" NCX and change the paths to work with the directory structure of the original EPUB to see if that is the only thing that needs to change.
@GinSoakedBoy commented on GitHub (Jun 6, 2025):
Does this mean this can be fixed in the iOS app without having to manually convert a bunch of EPUB files?
@nichwall commented on GitHub (Jun 6, 2025):
I don't know. It looks like the ABS server would need to repair the ebook files, which is not currently supported (ABS does not modify ebook files), so the simplest solution would be to convert all of the books using Calibre or Sigil. You should be able to automate it with a script so you don't need to manually click through the menu for everything.
@GinSoakedBoy commented on GitHub (Jun 6, 2025):
It's weird since the web app works fine, it's just the mobile app that struggles with it. Plus every other EPUB reader app I've tried it with also works fine with the EPUB files.
@monkeyworknet commented on GitHub (Dec 30, 2025):
Any further updates on this one?