There are certainly some complaints in the journal… My Python ability is at a baby-talk level, so I didn’t get far tracing what might be happening. I’m assuming setup creates /usr/local/lib/mailinabox because I didn’t copy any of this over.
I also ran setup again (TAG=v68) thinking something got mangled…
The odd thing is I didn’t touch anything - only rsync’d user-data/mail as usual and restarted… And I can get into roundcube just fine. In fact, the first failure was when I reloaded the admin page and the browser filled the fields in from previous.
Here is the log. Any ideas? The only thing I can think of is that roundcube.sqlite is in ./mail but there have been no user changes on either machine in this time. On the old machine I can get into roundcube AND the admin panel fine.
Jul 22 18:30:00 start[79017]: {SHA512-CRYPT}$6$qYnhXXnerwlaSvpn$CRE//xxxxxxxxxxxx/yyyyyyyyyyyyyyyy/Lk5DIS1 (verified)
Jul 22 18:30:00 start[7970]: [2024-07-22 18:30:00,420] ERROR in app: Exception on /login [POST]
Jul 22 18:30:00 start[7970]: Traceback (most recent call last):
Jul 22 18:30:00 start[7970]: File “/usr/local/lib/mailinabox/env/lib/python3.10/site-packages/flask/app.py”, line 1473, in wsgi_app
Jul 22 18:30:00 start[7970]: response = self.full_dispatch_request()
Jul 22 18:30:00 start[7970]: File “/usr/local/lib/mailinabox/env/lib/python3.10/site-packages/flask/app.py”, line 882, in full_dispatch_request
Jul 22 18:30:00 start[7970]: rv = self.handle_user_exception(e)
Jul 22 18:30:00 start[7970]: File “/usr/local/lib/mailinabox/env/lib/python3.10/site-packages/flask/app.py”, line 880, in full_dispatch_request
Jul 22 18:30:00 start[7970]: rv = self.dispatch_request()
Jul 22 18:30:00 start[7970]: File “/usr/local/lib/mailinabox/env/lib/python3.10/site-packages/flask/app.py”, line 865, in dispatch_request
Jul 22 18:30:00 start[7970]: return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
Jul 22 18:30:00 start[7970]: File “/root/mailinabox/management/daemon.py”, line 143, in login
Jul 22 18:30:00 start[7970]: email, privs = auth_service.authenticate(request, env, login_only=True)
Jul 22 18:30:00 start[7970]: File “/root/mailinabox/management/auth.py”, line 83, in authenticate
Jul 22 18:30:00 start[7970]: self.check_user_auth(username, password, request, env)
Jul 22 18:30:00 start[7970]: File “/root/mailinabox/management/auth.py”, line 124, in check_user_auth
Jul 22 18:30:00 start[7970]: status, hints = validate_auth_mfa(email, request, env)
Jul 22 18:30:00 start[7970]: File “/root/mailinabox/management/mfa.py”, line 111, in validate_auth_mfa
Jul 22 18:30:00 start[7970]: mfa_state = get_mfa_state(email, env)
Jul 22 18:30:00 start[7970]: File “/root/mailinabox/management/mfa.py”, line 18, in get_mfa_state
Jul 22 18:30:00 start[7970]: c.execute(‘SELECT id, type, secret, mru_token, label FROM mfa WHERE user_id=?’, (get_user_id(email, c),))
Jul 22 18:30:00 start[7970]: sqlite3.OperationalError: no such table: mfa
Jul 22 18:30:00 gunicorn[7970]: Exception on /login [POST]
Traceback (most recent call last):
File “/usr/local/lib/mailinabox/env/lib/python3.10/site-packages/flask/app.py”, line 1473, in wsgi_app
response = self.full_dispatch_request()
File “/usr/local/lib/mailinabox/env/lib/python3.10/site-packages/flask/app.py”, line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
File “/usr/local/lib/mailinabox/env/lib/python3.10/site-packages/flask/app.py”, line 880, in full_dispatch_request
rv = self.dispatch_request()
File “/usr/local/lib/mailinabox/env/lib/python3.10/site-packages/flask/app.py”, line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
File “/root/mailinabox/management/daemon.py”, line 143, in login
email, privs = auth_service.authenticate(request, env, login_only=True)
File “/root/mailinabox/management/auth.py”, line 83, in authenticate
self.check_user_auth(username, password, request, env)
File “/root/mailinabox/management/auth.py”, line 124, in check_user_auth
status, hints = validate_auth_mfa(email, request, env)
File “/root/mailinabox/management/mfa.py”, line 111, in validate_auth_mfa
mfa_state = get_mfa_state(email, env)
File “/root/mailinabox/management/mfa.py”, line 18, in get_mfa_state
c.execute(‘SELECT id, type, secret, mru_token, label FROM mfa WHERE user_id=?’, (get_user_id(email, c),))
sqlite3.OperationalError: no such table: mfa