LNBits Web interface is unreachable - Cannot import module for extension 'usermanager'

Finally getting around to asking for support. I’m on the latest LNBits version from the Start9 Repo and it’s having issues that stem from not being able to upgrade

2025-11-30T12:29:36-05:00 2025-11-30 17:29:36.40 | INFO | Started server process [57]
2025-11-30T12:29:36-05:00 2025-11-30 17:29:36.40 | INFO | Waiting for application startup.
2025-11-30T12:29:36-05:00 2025-11-30 17:29:36.40 | INFO | Starting LNbits Version: 1.3.1
2025-11-30T12:29:36-05:00 2025-11-30 17:29:36.41 | ERROR | No module named ‘lnbits.extensions.lndhub’
2025-11-30T12:29:36-05:00 2025-11-30 17:29:36.41 | ERROR | Error migrating extension lndhub: Cannot import module for extension ‘lndhub’.
2025-11-30T12:29:36-05:00 2025-11-30 17:29:36.43 | ERROR | No module named ‘lnbits.extensions.usermanager’
2025-11-30T12:29:36-05:00 2025-11-30 17:29:36.43 | ERROR | Error migrating extension usermanager: Cannot import module for extension ‘usermanager’.
2025-11-30T12:29:36-05:00 2025-11-30 17:29:36.44 | INFO | :heavy_check_mark: All migrations done.
2025-11-30T12:29:36-05:00 2025-11-30 17:29:36.62 | ERROR | Traceback (most recent call last):
2025-11-30T12:29:36-05:00 File “/app/.venv/lib/python3.12/site-packages/starlette/routing.py”, line 694, in lifespan
2025-11-30T12:29:36-05:00 async with self.lifespan_context(app) as maybe_state:
2025-11-30T12:29:36-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-11-30T12:29:36-05:00 File “/usr/local/lib/python3.12/contextlib.py”, line 210, in aenter
2025-11-30T12:29:36-05:00 return await anext(self.gen)
2025-11-30T12:29:36-05:00 ^^^^^^^^^^^^^^^^^^^^^
2025-11-30T12:29:36-05:00 File “/app/lnbits/app.py”, line 141, in lifespan
2025-11-30T12:29:36-05:00 await startup(app)
2025-11-30T12:29:36-05:00 File “/app/lnbits/app.py”, line 81, in startup
2025-11-30T12:29:36-05:00 await check_admin_settings()
2025-11-30T12:29:36-05:00 File “/app/lnbits/core/services/users.py”, line 162, in check_admin_settings
2025-11-30T12:29:36-05:00 account = await get_account(settings.super_user)
2025-11-30T12:29:36-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-11-30T12:29:36-05:00 File “/app/lnbits/core/crud/users.py”, line 98, in get_account
2025-11-30T12:29:36-05:00 return await (conn or db).fetchone(
2025-11-30T12:29:36-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-11-30T12:29:36-05:00 File “/app/lnbits/db.py”, line 370, in fetchone
2025-11-30T12:29:36-05:00 return await conn.fetchone(query, values, model)
2025-11-30T12:29:36-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-11-30T12:29:36-05:00 File “/app/lnbits/db.py”, line 194, in fetchone
2025-11-30T12:29:36-05:00 return dict_to_model(row, model)
2025-11-30T12:29:36-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^
2025-11-30T12:29:36-05:00 File “/app/lnbits/db.py”, line 714, in dict_to_model
2025-11-30T12:29:36-05:00 _model.init(**_dict) # type: ignore
2025-11-30T12:29:36-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^
2025-11-30T12:29:36-05:00 File “/app/lnbits/core/models/users.py”, line 127, in init
2025-11-30T12:29:36-05:00 super().init(**data)
2025-11-30T12:29:36-05:00 File “pydantic/main.py”, line 347, in pydantic.main.BaseModel.init
2025-11-30T12:29:36-05:00 pydantic.error_wrappers.ValidationError: 1 validation error for Account
2025-11-30T12:29:36-05:00 extra
2025-11-30T12:29:36-05:00 none is not an allowed value (type=type_error.none.not_allowed)
2025-11-30T12:29:36-05:00
2025-11-30T12:29:36-05:00 2025-11-30 17:29:36.62 | ERROR | Application startup failed. Exiting.

How can I fix it? I’m an advanced user and can SSH into the box. I’ve attempted to fix it myself but I’m stuck. It seems like it needs those files in there but I don’t know my way around the Start9 ecostystem and podman ecosystem enough to figure it out on my own.

Do you recall what version you upgraded from and then upgraded to?

I don’t know 100%. I think it was 0.12.10 to 0.12.11… but it’s possible it was earlier or later. 0.12.8 is one version that sticks out in my head, but I can’t guarantee it.

I have been upgrading each time a new one comes out in hopes that it fixes the issue. This has been going on for a while and I just have not had time to troubleshoot it.

I don’t think you have been updating since the versions you mention are from last year, and the latest is 1.3.1.1 - the error you’re seeing is something that affected people around that time, I’d have to look into it again.

How important is this instance of LNbits to you?

I have only 1 wallet in there with sats in it. I don’t care about it as long as I don’t lose my SATs. I don’t know 100% but I think that if I get rid of it, they would just ‘appear’ back on my node… but I have 100k sats in there that I don’t want to lose. From what I understand it’s just sitting on top of LND and adjusting what’s available in LND (because I know that when I admin topped up 5k, it reduced my LND node’s avaiable funds by 5k). Also, LNBits docs always say don’t uninstall it without backing it up first or sats will be lost. Because I don’t fully understand it, I’ve left it until now. I originally was using it for LN wallets for my family.

No funds are stored in LNbits. The funds are in LND.

There will be no part of LNbits docs that say that uninstalling it will delete funds, that’s not possible if LND is the backend. Nor will funding an LNbits “wallet” reduce LND funds by any amount (you balance there is either a pure database entry if you clicked +, or a circular rebalance plus database entry if you paid an invoice.)

What the LNbits docs will say is that deleting your LNbits will delete your wallets and your records of any assignments of funds to LNbits’ fake wallets.

The reason I asked is to find out if you have like 6 people in your family all using different LNbits wallets. They’d “lose” their funds, but you’d still have them in your LND.

In your case then, you might want to go ahead, uninstall LNbits, install v1.3.x (several versions ahead of what you’re using now) and re-assign your funds. It’ll be quicker than trying to fix this botched update.

While I agree that the funds are in LND, I recall SPECIFICALLY looking at RTL/Thunderhub and seeing how many sats I had on my node. I then went to admin top up within LNBits and top up my ‘personal’ wallet by 5000 sats, and I refreshed my RTL/Thunderhub page and my balance was 5000 less. I agree the funds are still on the LND service, but LNBits makes it seem like they’ve been allocated to said wallet in LNBits. Yes, the funds are still on LND, but in a different partition/bucket. My worry is that if I remove that bucket, the funds will not re-hydrate my LND instance and somehow be ‘lost’ or unspendable somehow.

Like I said, there are no funds in LNbits itself. If you had pending HTLCs from routing, or anything else had changed at the same time, or if you had funded your LNbits by sending sats to yourself and the circular rebalance had not yet completed yet… then this could explain what you observed.

No, LNbits can not take sats out of channels and somehow make them appear in LNbits outside the lightning network.

No, LNbits can not go inside LND a change how LND works so somehow segment your channel balances.

That is simply not how it works. You are of course free to read LNbits documentation to confirm.

I decided to delete and rebuild LNBits. I always agreed with your sentiment that the funds are in LND, but I didn’t have a logical reason why it would have done that discrepancy, but what you’re saying about the cirular rebalance makes sense. I havn’t yet setup the new wallets, but I will try and reproduce my association between funds and LNBits again and report back when I do. I had to replace my hardware of my node so I just finished the migration to new hardware (which I now have duplicates in case of hardware failures minus the SSD)