# Admin panel broken after restore/upgrade

**URL:** <https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112>\
**Category:** uncategorized\
**Created:** [July 21, 2024, 7:45pm UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112 "2024-07-21T19:45:49Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![tyler](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/t/35a633/32.png) [@tyler](https://discourse.mailinabox.email/u/tyler)\
**Post date:** [July 21, 2024, 7:45pm UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/1 "2024-07-21T19:45:50Z")

</div>

![Screenshot from 2024-07-21 15-43-23](https://discourse.mailinabox.email/uploads/default/original/2X/b/b59f204c9c0f355d7ca3c26ccd0536edc20d15fb.png)

I had to perform a restore to a new box today. Old box was running v67, new box is v69a I believe. Everything (send/receive, nextcloud, etc.) all works. Webmail interface works.

The admin panel is the only thing not working. One caveat may be that I had MFA set up on the previous server’s admin panel. Not sure how to restore this.

---

<div class="post-metadata">

**Author:** ![malik](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/m/e36b37/32.png) [@malik](https://discourse.mailinabox.email/u/malik)\
**Post date:** [July 21, 2024, 8:16pm UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/2 "2024-07-21T20:16:22Z")

</div>

I came here because I have the exact same issue. But mine is on a brand new server. New domain and DNS.

---

<div class="post-metadata">

**Author:** ![TabTwo](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/t/46a35a/32.png) [@TabTwo](https://discourse.mailinabox.email/u/TabTwo)\
**Post date:** [July 21, 2024, 8:26pm UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/3 "2024-07-21T20:26:30Z")

</div>

Also new box with the same issue

---

<div class="post-metadata">

**Author:** ![tyler](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/t/35a633/32.png) [@tyler](https://discourse.mailinabox.email/u/tyler)\
**Post date:** [July 21, 2024, 8:26pm UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/4 "2024-07-21T20:26:59Z")

</div>

Very interesting. Thanks for chiming in. Helps me realize that the restore process didn’t break this.

---

<div class="post-metadata">

**Author:** ![TabTwo](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/t/46a35a/32.png) [@TabTwo](https://discourse.mailinabox.email/u/TabTwo)\
**Post date:** [July 21, 2024, 8:34pm UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/5 "2024-07-21T20:34:07Z")

</div>

I have another system, recently upgraded to v69 → no problems.  
No I wont update to v69a at the moment to verify 🙂  
But gut feeling says, theres something broken in v69a

---

<div class="post-metadata">

**Author:** ![malik](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/m/e36b37/32.png) [@malik](https://discourse.mailinabox.email/u/malik)\
**Post date:** [July 21, 2024, 8:43pm UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/6 "2024-07-21T20:43:31Z")

</div>

come on its for science! 🙂

---

<div class="post-metadata">

**Author:** ![malik](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/m/e36b37/32.png) [@malik](https://discourse.mailinabox.email/u/malik)\
**Post date:** [July 21, 2024, 8:45pm UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/7 "2024-07-21T20:45:55Z")

</div>

Been struggling with this issue since yesterday. I thought the same, that it was an issue with upgrade process so I built 3 more servers for testing and even registered a new domain to test fresh build. but it looks like I am not the only one so there is that light.

---

<div class="post-metadata">

**Author:** ![dfowlkes](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/d/e0b2c6/32.png) [@dfowlkes](https://discourse.mailinabox.email/u/dfowlkes)\
**Post date:** [July 21, 2024, 11:56pm UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/8 "2024-07-21T23:56:58Z")

</div>

No problem with either v69 or v69a. Also have MFA which is working. Running Ubuntu 22.04 on AWS instance. All updates and upgrades in place

---

<div class="post-metadata">

**Author:** ![malik](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/m/e36b37/32.png) [@malik](https://discourse.mailinabox.email/u/malik)\
**Post date:** [July 22, 2024, 12:36am UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/9 "2024-07-22T00:36:20Z")

</div>

Fresh build or upgraded from previous?

---

<div class="post-metadata">

**Author:** ![Gladner](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/g/e56c9b/32.png) [@Gladner](https://discourse.mailinabox.email/u/Gladner)\
**Post date:** [July 22, 2024, 5:12am UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/10 "2024-07-22T05:12:20Z")

</div>

I have fresh install and I have the same problem. Does anyone have a solution for this? Is there a file missing or some css missing?

---

<div class="post-metadata">

**Author:** ![piks](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/p/a6a055/32.png) [@piks](https://discourse.mailinabox.email/u/piks)\
**Post date:** [July 22, 2024, 11:39am UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/11 "2024-07-22T11:39:06Z")

</div>

I’m on v68. All was working fine. Per my other setup topic, I have been setting up a new box and periodically rsync /home/user-data/mail from a currently active older box. This box is set up but not the active mail machine for the domain yet.

Everything has been going fine. Could log into roundcube and the admin panel. All of a sudden, I now get a popup on login that says:

> Error  
> Something went wrong, sorry.

And I can’t get in.  
I can get into email (roundcube), and all the latest is there.

What are the error conditions that would cause this? What would change without my changing anything? I didn’t upgrade.

I then reinstalled v68 (modified $TAG in setup) and no errors, but it’s still broken.

What could cause this? All was fine just hours ago!

Thanks.

---

<div class="post-metadata">

**Author:** ![KiekerJan](https://discourse.mailinabox.email/user_avatar/discourse.mailinabox.email/kiekerjan/32/2339_2.png) [@KiekerJan](https://discourse.mailinabox.email/u/KiekerJan)\
**Post date:** [July 22, 2024, 4:54pm UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/12 "2024-07-22T16:54:57Z")

</div>

> [@piks](#):
>
> Error  
> Something went wrong, sorry.

When you get this, try looking at the output of `sudo journalctl -u mailinabox`

---

<div class="post-metadata">

**Author:** ![tyler](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/t/35a633/32.png) [@tyler](https://discourse.mailinabox.email/u/tyler)\
**Post date:** [July 22, 2024, 7:58pm UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/13 "2024-07-22T19:58:46Z")

</div>

These are the relevant log lines from `/var/log/nginx/access.log`

```auto
[22/Jul/2024:15:55:25 -0400] "GET /admin/assets/bootstrap/css/bootstrap.min.css HTTP/2.0" 403 169 "https://<my mailserver>.com/admin" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
[22/Jul/2024:15:55:25 -0400] "GET /admin/assets/bootstrap/css/bootstrap-theme.min.css HTTP/2.0" 403 169 "https://<my mailserver>.com/admin" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
[22/Jul/2024:15:55:25 -0400] "GET /admin/assets/jquery.min.js HTTP/2.0" 403 169 "https://<my mailserver>.com/admin" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
[22/Jul/2024:15:55:25 -0400] "GET /admin/assets/bootstrap/js/bootstrap.min.js HTTP/2.0" 403 169 "https://<my mailserver>.com/admin" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"

```

Also, are these the correct file permissions for jquery.min.js? What’s up with the 1991 date on this?

```auto
ubuntu@mail01:~$ sudo ls -l /usr/local/lib/mailinabox/vendor/assets
total 88
drwxr-xr-x 5 root root 4096 Feb 13 2019 bootstrap
-rw-r--r-- 1 root root 85578 Oct 18 1991 jquery.min.js

```

---

<div class="post-metadata">

**Author:** ![luc](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/l/9dc877/32.png) [@luc](https://discourse.mailinabox.email/u/luc)\
**Post date:** [July 22, 2024, 8:39pm UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/14 "2024-07-22T20:39:32Z")

</div>

hello I had the same problem and there are other bugs for this problem, test that

echo “test” | sudo tee /usr/local/lib/mailinabox/vendor/assets/test.txt  
sudo chown www-data:www-data /usr/local/lib/mailinabox/vendor/assets/test.txt  
sudo chmod 755 /usr/local/lib/mailinabox/vendor/assets/test.txt

sudo chmod 755 /usr/local/lib/mailinabox/vendor

---

<div class="post-metadata">

**Author:** ![piks](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/p/a6a055/32.png) [@piks](https://discourse.mailinabox.email/u/piks)\
**Post date:** [July 22, 2024, 11:09pm UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/15 "2024-07-22T23:09:02Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![DanteN](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/d/838e76/32.png) [@DanteN](https://discourse.mailinabox.email/u/DanteN)\
**Post date:** [July 22, 2024, 11:34pm UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/16 "2024-07-22T23:34:37Z")

</div>

does anyone have an actual fix to the admin panel of miab not working? step by step if possible as I don’t understand 90% of the code/ssh stuff

---

<div class="post-metadata">

**Author:** ![malik](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/m/e36b37/32.png) [@malik](https://discourse.mailinabox.email/u/malik)\
**Post date:** [July 23, 2024, 12:30am UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/17 "2024-07-23T00:30:58Z")

</div>

Luc’s fix worked for me but after I made the changes I had to run the MiaB installer again before it worked. Just log into console via ssh and copy/paste the lines one by one.

Good Luck. even after the fix I just decided to stick with my 18.04 Ubuntu and 57a MiaB install. Will come back to it in 2028 when the server reaches EOL

---

<div class="post-metadata">

**Author:** ![piks](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/p/a6a055/32.png) [@piks](https://discourse.mailinabox.email/u/piks)\
**Post date:** [July 23, 2024, 1:15am UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/18 "2024-07-23T01:15:49Z")

</div>

What does Luc’s fix do exactly? Is a restart needed after or re-install?

---

<div class="post-metadata">

**Author:** ![themew](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/t/90ced4/32.png) [@themew](https://discourse.mailinabox.email/u/themew)\
**Post date:** [July 23, 2024, 1:55am UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/19 "2024-07-23T01:55:18Z")

</div>

Seems it’s a simple permissions issue. Here’s the fix in another thread thanks to @miaber

> [@403 on my JS and CSS](https://discourse.mailinabox.email/t/403-on-my-js-and-css/12114/7):
>
> No clues in journalctl -u mailinabox, just normal startup and SSL provisioning stuff. Anyway I have identified 2 folders that had bad permissions resulting in /admin not being able to function, my fix was to chmod them again /usr/local/lib/mailinabox/vendor 0664 to files, 0775 to folders /home/user-data 0664 to files, 0775 to folders (before requesting for SSL certs)

Hopefully @JoshData can push an update to fix these permissions for a trouble-free install/update. Until then, ssh into your server and simply fix the file/folder permissions.

Edit: There may be more to this issue… Hopefully Josh can shine some light on this 🙂

---

<div class="post-metadata">

**Author:** ![miaber](https://discourse.mailinabox.email/letter_avatar_proxy/v4/letter/m/7c8e57/32.png) [@miaber](https://discourse.mailinabox.email/u/miaber)\
**Post date:** [July 23, 2024, 2:13am UTC](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112/20 "2024-07-23T02:13:00Z")

</div>

Wow, I did do a search prior to posting. Glad I’m not the only one, for a moment I thought I was hallucinating when `/admin` did not work.

[Next page](https://discourse.mailinabox.email/t/admin-panel-broken-after-restore-upgrade/12112.md?page=2)
