Skip to content

[bug] Koreader Sync doesn't seem to sync progress across different formats of the same ebook #1210

Description

@jetpacktuxedo

Describe the bug
As the title says, most of my books have both an epub and a kepub (I have a kobo device), and nothing seems to allow these to sync to one another.

To Reproduce

  1. Use two devices to download two different formats of the same book
  2. Flip a bit into the book on one device
  3. Push progress
  4. Switch to the other device using the different format
  5. Pull progress
  6. Observe that nothing is pulled

Expected behavior
CWA clearly understands the progress, as it is displayed in the UI as KOReader Progress and that updates correctly when both devices push... but when they go to pull it seems to see the two formats as separate books.

Screenshots
See below

Configuration(please complete the following information):

  • OS: docker on a debian host
  • Hardware: koreader on android with cwa kosync plugin, xteink x4 running crosspoint-reader with their native kosync plugin
  • Version 4.0.6

Additional context
Pull progress from other devices now on koreader on android always returns Latest progress is coming from this device
This always results in only the following two log lines:

[2026-03-17 11:50:10,899]  INFO {cps.progress_syncing.protocols.kosync:202} User authenticated successfully: <username>
[2026-03-17 11:50:10,908] DEBUG {cps.progress_syncing.protocols.kosync:289} Found book match: Silver Nitrate (ID 520, format EPUB, checksum vkoreader)

Push progress from this device now gets me these logs:

[2026-03-17 11:52:11,071]  INFO {cps.progress_syncing.protocols.kosync:202} User authenticated successfully: <username>
[2026-03-17 11:52:11,072] DEBUG {cps.progress_syncing.protocols.kosync:680} Updated kosync progress for user 3, document 287e86ec900ed4386a90b989ad2a7b32
[2026-03-17 11:52:11,154]  INFO {cps.progress_syncing.protocols.kosync:699} Saved kosync progress: user=3, document=287e86ec900ed4386a90b989ad2a7b32, prog
ress=0.84%
[2026-03-17 11:52:11,156] DEBUG {cps.progress_syncing.protocols.kosync:289} Found book match: Silver Nitrate (ID 520, format EPUB, checksum vkoreader)
[2026-03-17 11:52:11,156] DEBUG {cps.progress_syncing.protocols.kosync:363} update_book_read_status: user 3, book 520, percentage 0.84% -> status 2
[2026-03-17 11:52:11,159] DEBUG {cps.progress_syncing.protocols.kosync:375} Found existing ReadBook: old_status=2, new_status=2
[2026-03-17 11:52:11,159] DEBUG {cps.progress_syncing.protocols.kosync:390} ReadBook status unchanged: 2
[2026-03-17 11:52:11,180]  INFO {cps.progress_syncing.protocols.kosync:722} Updated ReadBook status: user=3, book=520 (Silver Nitrate), status based on 0.
8%

and updates the progress in CWA:

Image

Sync from the xteink x4 (where I inadvertently pulled the kepub instead of epub) loosely works in that it finds progress, but only the progress that it uploaded last:

Image

The logs for pushing current progress look like this:

[2026-03-17 11:58:02,668]  INFO {cps.progress_syncing.protocols.kosync:202} User authenticated successfully: <username>
[2026-03-17 11:58:02,669] DEBUG {cps.progress_syncing.protocols.kosync:680} Updated kosync progress for user 3, document 7352a57ff5c7928ef3c08817e86904cb
[2026-03-17 11:58:02,681]  INFO {cps.progress_syncing.protocols.kosync:699} Saved kosync progress: user=3, document=7352a57ff5c7928ef3c08817e86904cb, progress=33.81%
[2026-03-17 11:58:02,682] DEBUG {cps.progress_syncing.protocols.kosync:289} Found book match: Silver Nitrate (ID 520, format KEPUB, checksum vkoreader)   [2026-03-17 11:58:02,682] DEBUG {cps.progress_syncing.protocols.kosync:363} update_book_read_status: user 3, book 520, percentage 33.81% -> status 2
[2026-03-17 11:58:02,683] DEBUG {cps.progress_syncing.protocols.kosync:375} Found existing ReadBook: old_status=2, new_status=2
[2026-03-17 11:58:02,683] DEBUG {cps.progress_syncing.protocols.kosync:390} ReadBook status unchanged: 2
[2026-03-17 11:58:02,692]  INFO {cps.progress_syncing.protocols.kosync:722} Updated ReadBook status: user=3, book=520 (Silver Nitrate), status based on 33.8%

and that updates the progress in CWA as well:

Image

but neither device can see progress uploaded by the other, seemingly because the hashes don't match because of the different formats (epub vs kepub).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions