calibre-web icon indicating copy to clipboard operation
calibre-web copied to clipboard

Kobo Sync not syncing read progress correctly

Open piekay opened this issue 7 months ago • 1 comments

Short Notice from the maintainer

After 6 years of more or less intensive programming on Calibre-Web, I need a break. The last few months, maintaining Calibre-Web has felt more like work than a hobby. I felt pressured and teased by people to solve "their" problems and merge PRs for "their" Calibre-Web. I have turned off all notifications from GitHub/Discord and will now concentrate undisturbed on the development of “my” Calibre-Web over the next few weeks/months.
I will look into the issues and maybe also the PRs from time to time, but don't expect a quick response from me.

Please also have a look at our Contributing Guidelines

Describe the bug/problem

Kobo Libra Color sometimes doesn't realize it's on the correct page when syncing reading progress, thus showing the Return to last page popup. This seems to happen almost exclusively with comics/mangas.

To Reproduce

Steps to reproduce the behavior:

  1. Open a comic on the Kobo
  2. Scroll through it for a bit
  3. Put Kobo Libra Color to sleep

Logfile

I will append Wireshark logging here


>6<>s2E	v@@	8R#=
~JPUT /kobo/d9bccc6b9fb9c0bbffb4c44b417efd4b/v1/library/6a71970e-ee10-4fbb-bd2a-18856167edc3/state HTTP/1.0
Host: cali.bre
X-Forwarded-For: 172.26.238.25
X-Scheme: https
Connection: close
Content-Length: 499
Accept-Encoding: gzip
Accept: application/json
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjA4NkI4NjkzNUQyQ0FFMDM0MzJGQTFGOTY5MDJGQzIyQzVFNkU4NzkiLCJ4NXQiOiJDR3VHazEwc3JnTkRMNkg1YVFMOElzWG02SGsiLCJ0eXAiOiJKV1QifQ.eyJuYmYiOjE3NTYyMzUxODQsImV4cCI6MTc1NjIzODc4NCwiaXNzIjoiaHR0cHM6Ly9hdXRoLmtvYm9ib29rcy5jb20iLCJhdWQiOlsiaHR0cHM6Ly9hdXRoLmtvYm9ib29rcy5jb20vcmVzb3VyY2VzIiwicHJvZmlsZWF1dGgiLCJwdWJsaWNfYXBpIl0sImNsaWVudF9pZCI6Im5pY2tlbCIsInN1YiI6IjFjM2EzMmU2LTc0ODYtNDYxYi0xZThiLTA4ZGM5ZDlhYWFjOCIsImF1dGhfdGltZSI6MTc1NTkxMzcyNCwiaWRwIjoiS29iby5Qcm9maWxlLkF1dGgiLCJrb2JvX3VzZXJfaWQiOiJjOThjNjQ0NC0wOTY4LTQ1MWMtYWYzYy02NjFhZmRmZTg3MzQiLCJzY29wZSI6WyJvcGVuaWQiLCJwcm9maWxlIiwia29ib19wcm9maWxlIiwicHJvZmlsZWF1dGhfY2xpZW50X2F1dGhkX3JlZmVycmFsIiwicHVibGljX2FwaV9hdXRoZW50aWNhdGVkIiwicHVibGljX2FwaV9hbm9ueW1vdXMiLCJvZmZsaW5lX2FjY2VzcyJdfQ.GMmXYllt83ecjZ3raxS17NQGOa1t2JRlRmIAqLLUCLUALzFaMKMezqAi_Gm7zOvvMXUjTqVfZu5aoZnaw7j0wSpuRDzmkdmOX82jShTHS6XCASE_iK0hLVeInzhEYSrC0eoWlwacqZISVsCPxYoDjzp1iSntr62XIYgnLthCD713MqYwx-H35JClxDg0nfCjgGLPLngei4IQvuLxR0S8ktwoyX1FpTGhJ49PvfOWvshibeJ8W2N2GTx__4Xql93ObL0GtDUaFpUyTxrbLaQiD5OxHusw9dubcXw05oVXOOJ6oy6bJpYTVGH-B5dGYVf1OzVFjQ6xNINufnS87a7RKg
Content-Type: application/json
x-kobo-affiliatename: Kobo
x-kobo-appversion: 4.42.23296
x-kobo-deviceid: 9e291b9f8feb56ccd98d7c7833e5536fd1612eca2cb46a90e924c11dea50f370
x-kobo-devicemodel: Kobo Libra Colour
x-kobo-deviceos: 4.9.77
x-kobo-deviceosversion: NA
x-kobo-platformid: 00000000-0000-0000-0000-000000000390
User-Agent: Mozilla/5.0 (Linux; U; Android 2.0; en-us;) AppleWebKit/538.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/538.1 (Kobo Touch 0390/4.42.23296)
Accept-Language: de-DE, de;q=0.9, en;q=0.8, *;q=0.7

{"ReadingStates": [{"CurrentBookmark": {"ContentSourceProgressPercent": 0,"LastModified": "2025-08-26T19:32:38Z","Location": {"Source": "text/part0085.html","Type": "KoboSpan","Value": "kobo.1.1"},"ProgressPercent": 33},"EntitlementId": "6a71970e-ee10-4fbb-bd2a-18856167edc3","LastModified": "2025-08-26T19:32:38Z","Statistics": {"LastModified": "2025-08-26T19:32:38Z","RemainingTimeMinutes": 0,"SpentReadingMinutes": 45},"StatusInfo": {"LastModified": "2025-08-26T19:32:38Z","Status": "Reading"}}]}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 556
Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval'; font-src 'self' data:; img-src 'self' data:; object-src 'none';
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000
X-RateLimit-Limit: 3
X-RateLimit-Remaining: 3
X-RateLimit-Reset: 1756236925
Retry-After: 0
Vary: Cookie
Set-Cookie: session=.eJwlzkEOAiEMheG7sHbRlgJlLjMptEQXasI4K-Pdxbh7iy8v_zvsY_pxDdtrnn4J-83CFrpWSSUmZUg9l5YMBjWK1nR0NClr4EBUqC6N0xCgQh1cSKBRbYnYpJpTdm5Ru4mqSmVNOrikjMjLqDu7jGEeBUV611zIgWNYIVMf9ryvGFBe10uhsBG5R6YfOA-f_9wYPl_PKDlw.aK4MfA.AVhFMi9UI4LSRlyXq5qoZxV_jgo; HttpOnly; Path=/; SameSite=Lax
Connection: close
Date: Tue, 26 Aug 2025 19:35:24 GMT

[{"Created":"2025-02-15T20:34:52Z","CurrentBookmark":{"LastModified":"2025-08-26T19:32:39Z","Location":{"Source":"text/part0085.html","Type":"KoboSpan","Value":"kobo.1.1"},"ProgressPercent":33.0},"EntitlementId":"6a71970e-ee10-4fbb-bd2a-18856167edc3","LastModified":"2025-08-26T19:32:39Z","PriorityTimestamp":"2025-08-26T19:32:39Z","Statistics":{"LastModified":"2025-08-26T19:32:39Z","SpentReadingMinutes":45},"StatusInfo":{"LastModified":"2025-08-20T23:29:27Z","LastTimeStartedReading":"2025-08-20T23:29:27Z","Status":"Reading","TimesStartedReading":1}}]

Expected behavior

Kobo Libra Color should show the last read page without the popup opening if the Ebook wasn't read on another device

Screenshots

If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

  • OS: Debian 13
  • Calibre-Web version: [0.6.25]:
  • Docker container: [LinuxServer]:
  • Special Hardware: [LXC Container]

Additional context Might be related / the same issue as #2304. All Mangas and Comics are converted to KEPUB.

piekay avatar Aug 26 '25 19:08 piekay

The only thing I can imagine being a problem is the "ProgressPercent":33.0 having a decimal point. As soon as I have the time I'll try to remove it on the fly. Does anyone know how Kobos own server answers? Does the answer include a decimal point?

piekay avatar Aug 26 '25 20:08 piekay