Skip to content

There is a bug that prevents the app from scanning when an EPUB file is added. #4756

Description

@daydreamrabbit

What happened?

There is a bug where, when adding files and scanning the library, some books are added while others are not.

I initially thought this issue was caused by the EPUB files themselves,
but I confirmed that files are registered and run normally in versions
0.9.0.4
and 0.8.8.0.

I also confirmed that if I temporarily move the EPUB files to a different library and rescan, the scan completes without any issues.

I’m not sure why the scan fails, but the log looks like the one below:

What did you expect?

The scan should complete successfully, and the library should be added.

Kavita Version Number - If you don't see your version number listed, please update Kavita and see if your issue still persists.

Nightly Testing Branch

Are you accessing kavita through a reverse proxy? If yes, confirm that the issue persists with a direct connection

Yes

What operating system is Kavita being hosted from?

Docker (Dockerhub Container)

If the issue is being seen on Desktop, what OS are you running where you see the issue?

Windows

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

Firefox

If the issue is being seen on Mobile, what OS are you running where you see the issue?

None

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

No response

Relevant log output

[Kavita] [2026-06-20 00:38:23.618 +09:00 53] [Warning] Kavita.Services.BookService [GetComicInfo] There was an exception parsing metadata: /book/Kavita/5.라노벨(정발)/2.연재/[ ㄹ ]/리빌드 월드 [나후세]/리빌드 월드 6.2권 (하).epub
System.IO.InvalidDataException: Central Directory corrupt.
---> System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
at System.IO.Stream.ReadAtLeast(Span1 buffer, Int32 minimumBytes, Boolean throwOnEndOfStream)
at System.IO.Compression.ZipHelper.SeekBackwardsAndRead(Stream stream, Span1 buffer, Int32 overlap)
at System.IO.Compression.ZipHelper.SeekBackwardsToSignature(Stream stream, ReadOnlySpan`1 signatureToFind, Int32 maxBytesToRead)
at System.IO.Compression.ZipArchive.ReadEndOfCentralDirectory()
--- End of inner exception stack trace ---
at System.IO.Compression.ZipArchive.ReadEndOfCentralDirectory()
at System.IO.Compression.ZipArchive..ctor(Stream stream, ZipArchiveMode mode, Boolean leaveOpen, Encoding entryNameEncoding)
at System.IO.Compression.ZipFile.Open(String archiveFileName, ZipArchiveMode mode, Encoding entryNameEncoding)
at VersOne.Epub.Environment.Implementation.FileSystem.OpenZipFile(String path)
at VersOne.Epub.Internal.BookRefReader.GetZipFile(String filePath)
at VersOne.Epub.Internal.BookRefReader.OpenBookAsync(String filePath)
at VersOne.Epub.Internal.BookRefReader.OpenBook(String filePath)
at VersOne.Epub.EpubReader.OpenBook(String filePath, EpubReaderOptions epubReaderOptions)
at Kavita.Services.BookService.OpenEpubWithFallback(String filePath, EpubBookRef epubBook) in home/runner/work/Kavita/Kavita/Kavita.Services/BookService.cs:line 736
at Kavita.Services.BookService.OpenEpubWithFallback(String filePath, EpubBookRef epubBook) in /home/runner/work/Kavita/Kavita/Kavita.Services/BookService.cs:line 724
at Kavita.Services.BookService.GetEpubComicInfo(String filePath) in /home/runner/work/Kavita/Kavita/Kavita.Services/BookService.cs:line 498

Additional Notes

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageNeeds to be triaged by a developer and assigned a release

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions