janeczku / calibre-web

:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database
GNU General Public License v3.0
13.19k stars 1.41k forks source link

Error 500 when trying to sync with kobo #3103

Closed alva-seal closed 4 months ago

alva-seal commented 4 months ago

Describe the bug/problem

I try to sync my new Kobo Clara with calibre web

To Reproduce

Steps to reproduce the behavior: I reduced the error down to the following GET request: GET /kobo/token/v1/library/sync?Filter=ALL&DownloadUrlFilter=Generic,Android&PrioritizeRecentReads=true This returns a error 500

I can reproduce this in the browser to and get the following Error page: Calibre-Web 500 Internal Server Error The server encountered an internal error and was unable to complete your request. There is an error in the application. Traceback (most recent call last): File "/lsiopy/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 199, in _key_not_found self._key_fallback(key, None) File "/lsiopy/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 138, in _key_fallback raise KeyError(key) from err KeyError: 'is_public' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 2190, in wsgi_app response = self.full_dispatch_request() File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1486, in full_dispatch_request rv = self.handle_user_exception(e) File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request rv = self.dispatch_request() File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) File "/app/calibre-web/cps/kobo_auth.py", line 168, in inner return f(*args, **kwargs) File "/app/calibre-web/cps/web.py", line 122, in inner return f(*args, **kwargs) File "/app/calibre-web/cps/kobo.py", line 313, in HandleSyncRequest sync_shelves(sync_token, sync_results, only_kobo_shelves) File "/app/calibre-web/cps/kobo.py", line 735, in sync_shelves if not shelf_lib.check_shelf_view_permissions(shelf): File "/app/calibre-web/cps/shelf.py", line 298, in check_shelf_view_permissions if cur_shelf.is_public: File "lib/sqlalchemy/cyextension/resultproxy.pyx", line 66, in sqlalchemy.cyextension.resultproxy.BaseRow.__getattr__ File "lib/sqlalchemy/cyextension/resultproxy.pyx", line 63, in sqlalchemy.cyextension.resultproxy.BaseRow._get_by_key_impl File "/lsiopy/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 201, in _key_not_found raise AttributeError(ke.args[0]) from ke AttributeError: is_public Please report this issue with all related information: [Create Issue](https://github.com/janeczku/calibre-web/issues/new/choose=) [Return to Home](https://book.alva.lgbt/)

Logfile

The part of the logfile regarding the request: `2024-07-13 09:57:47,588] INFO {cps.kobo:143} Kobo library sync request received. [2024-07-13 09:57:47,588] DEBUG {cps.kobo:144} SyncToken: 0001-01-01 00:00:00,0001-01-01 00:00:00,0001-01-01 00:00:00,0001-01-01 00:00:00,0001-01-01 00:00:00, [2024-07-13 09:57:47,616] DEBUG {cps.kobo:215} Books to Sync: 1 [2024-07-13 09:57:47,626] DEBUG {cps.kobo:280} Remaining books to Sync: 1 [2024-07-13 09:57:47,633] ERROR {cps:1414} Exception on /kobo/03e4e5bd4520ecff3c67aac16d99ccad/v1/library/sync [GET] Traceback (most recent call last): File "/lsiopy/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 199, in _key_not_found self._key_fallback(key, None) File "/lsiopy/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 138, in _key_fallback raise KeyError(key) from err KeyError: 'is_public'

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 2190, in wsgi_app response = self.full_dispatch_request() File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1486, in full_dispatch_request rv = self.handle_user_exception(e) File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request rv = self.dispatch_request() File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(view_args) File "/app/calibre-web/cps/kobo_auth.py", line 168, in inner return f(*args, *kwargs) File "/app/calibre-web/cps/web.py", line 122, in inner return f(args, kwargs) File "/app/calibre-web/cps/kobo.py", line 313, in HandleSyncRequest sync_shelves(sync_token, sync_results, only_kobo_shelves) File "/app/calibre-web/cps/kobo.py", line 735, in sync_shelves if not shelf_lib.check_shelf_view_permissions(shelf): File "/app/calibre-web/cps/shelf.py", line 298, in check_shelf_view_permissions if cur_shelf.is_public: File "lib/sqlalchemy/cyextension/resultproxy.pyx", line 66, in sqlalchemy.cyextension.resultproxy.BaseRow.getattr File "lib/sqlalchemy/cyextension/resultproxy.pyx", line 63, in sqlalchemy.cyextension.resultproxy.BaseRow._get_by_key_impl File "/lsiopy/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 201, in _key_not_found raise AttributeError(ke.args[0]) from ke AttributeError: is_public `

Expected behavior

Syncing of the selected shelf

Environment (please complete the following information):

Additional context Add any other context about the problem here. [e.g. access via reverse proxy, database background sync, special database location]

alva-seal commented 4 months ago

After delisting the container and the database for caliber web and set it up new it works, sorry