calibre-web
calibre-web copied to clipboard
Admin/Add new User generates a 500 Internal Server Error
problem Admin/Add new User generates a 500 Internal Server Error
To Reproduce Steps to reproduce the behavior:
- Go to Admin section
- Click on 'Add new User'
- See 500 Internal Server Error
Logfile
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context
self.dialect.do_execute(
File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/engine/default.py", line 732, in do_execute
cursor.execute(statement, parameters)
sqlite3.DatabaseError: database disk image is malformed
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 2073, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1518, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1516, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1502, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "/usr/local/lib/python3.8/dist-packages/flask_login/utils.py", line 272, in decorated_view
return func(*args, **kwargs)
File "/app/calibre-web/cps/admin.py", line 90, in inner
return f(*args, **kwargs)
File "/app/calibre-web/cps/admin.py", line 1563, in new_user
languages = calibre_db.speaking_language()
File "/app/calibre-web/cps/db.py", line 911, in speaking_language
languages = self.session.query(Languages)
File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/orm/query.py", line 2759, in all
return self._iter().all()
File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/orm/query.py", line 2894, in _iter
result = self.session.execute(
File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/orm/session.py", line 1692, in execute
result = conn._execute_20(statement, params or {}, execution_options)
File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/engine/base.py", line 1614, in _execute_20
return meth(self, args_10style, kwargs_10style, execution_options)
File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/sql/elements.py", line 325, in _execute_on_connection
return connection._execute_clauseelement(
File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/engine/base.py", line 1481, in _execute_clauseelement
ret = self._execute_context(
File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/engine/base.py", line 1845, in _execute_context
self.handle_dbapi_exception(
File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/engine/base.py", line 2026, in handle_dbapi_exception
util.raise(
File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/util/compat.py", line 207, in raise
raise exception
File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context
self.dialect.do_execute(
File "/usr/local/lib/python3.8/dist-packages/sqlalchemy/engine/default.py", line 732, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.DatabaseError: (sqlite3.DatabaseError) database disk image is malformed
[SQL: SELECT languages.id AS languages_id, languages.lang_code AS languages_lang_code
FROM languages JOIN books_languages_link ON languages.id = books_languages_link.lang_code JOIN books ON books.id = books_languages_link.book
WHERE (books.id NOT IN (SELECT 1 FROM (SELECT 1) WHERE 1!=1)) GROUP BY books_languages_link.lang_code]
(Background on this error at: https://sqlalche.me/e/14/4xp6)
Environment (please complete the following information):
- Docker container: ghcr.io/linuxserver/calibre-web:latest
- Special Hardware: Synology
Actually the error occurs on every add/edit user operation
Strange: the error sqlalchemy.exc.DatabaseError: (sqlite3.DatabaseError) database disk image is malformed
is based on a problem with the calibre library. I think it‘s happening as long as you restart calibre-web. A library check from within calibre itself could help to solve the issue