Symptoms
You upgraded a Jitsi server installed from the Debian packages from Ubuntu 24.04 to 26.04. Meetings no longer connect, and Prosody fails to start:
prosody[1157]: A problem occurred while reading the config file /etc/prosody/prosody.cfg.lua
prosody[1157]: Error: /usr/share/lua/5.2/prosody/core/configmanager.lua:346: Error expanding wildcard pattern in Include "conf.d/*.cfg.lua" - LuaFileSystem not available
systemd[1]: prosody.service: Main process exited, code=exited, status=1/FAILUREThe 5.2 in the path is the clue. Depending on which command you run, the same problem can also show up as:
lua: /usr/share/lua/5.2/prosody/util/startup.lua:343: module 'lfs' not found:lua: /usr/bin/prosody:49: module 'prosody.loader' not found:Prosody is no longer compatible with Lua 5.1The upgrade also commented out the Jitsi and Prosody apt repositories, so apt update no longer offers Jitsi or Prosody updates.
Cause
The prosody and prosodyctl commands start with #!/usr/bin/env lua. They run on whichever Lua /usr/bin/lua points to, and Debian picks that by priority:
| Package | /usr/bin/lua priority |
|---|---|
lua5.2 |
120 |
lua5.1 (installed with luarocks) |
110 |
lua5.4 |
20 |
Jitsi’s install guide told you to install lua5.2, so on Ubuntu 24.04 your Prosody ran on Lua 5.2. Ubuntu 26.04 still has lua5.2 itself, but the libraries Prosody needs (lua-filesystem, lua-sec, lua-socket, lua-expat) are now built only for Lua 5.1, 5.3 and 5.4. The first one Prosody asks for is LuaFileSystem, so that is the error you see.
Two more things keep the server stuck:
- Installing
lua5.4does not help on its own. With priority 20 it never wins overlua5.2. - Removing
lua5.2is not enough either. Prosody recommendsluarocks, which bringslua5.1with priority 110, and Prosody 13 refuses to run on Lua 5.1.
Jitsi removed the lua5.2 step from the handbook on 2026-10-05 and closed issue #17924 with PR #17928, which drops a Lua module that was missing for Lua 5.4. Neither change switches an existing server to Lua 5.4. You do that by hand.
Fix
Take a snapshot or backup of the server first. All commands run on the Jitsi server.
1. Re-enable the Jitsi and Prosody repositories
do-release-upgrade disables third-party sources. Open both files:
ls /etc/apt/sources.list.d/
sudoedit /etc/apt/sources.list.d/jitsi-stable.list
sudoedit /etc/apt/sources.list.d/prosody-debian-packages.listUse the names you see if they differ, and rename any file the upgrade gave a .disabled ending. In each file, remove the # in front of the deb line. In the Prosody file, also change the release name from noble to resolute. The two lines should end up like this:
deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/
deb [signed-by=/usr/share/keyrings/prosody-debian-packages.key] http://packages.prosody.im/debian resolute mainKeep the signed-by path your file already has. The Jitsi line has no release name, so it needs no other change. A Jitsi maintainer confirmed in the issue that re-enabling it is safe.
2. Switch Prosody to Lua 5.4
sudo apt update
sudo apt install lua5.4
sudo update-alternatives --set lua-interpreter /usr/bin/lua5.4The last command puts the alternative in manual mode, so later package installs cannot move /usr/bin/lua back to 5.1 or 5.2.
3. Upgrade the packages and restart
sudo apt full-upgrade
sudo dpkg --configure -a
sudo systemctl restart prosody jicofo jitsi-videobridge2This replaces the 24.04 Prosody build (13.0.7-1~noble2) with the 26.04 one (13.0.7-1~resolute2) and finishes any Jitsi package the upgrade left half configured.
4. Optional: remove Lua 5.2
Nothing in a current Jitsi install needs it:
sudo apt purge lua5.2Already ran the luarocks steps?
If you followed the forum recipe, modules you built with luarocks sit in /usr/local and override the packaged ones. Check:
ls /usr/local/lib/lua/5.4 /usr/local/share/lua/5.4 2>/dev/nullIf Prosody runs, you can leave them. If you see odd module errors later, remove them with sudo luarocks remove <name> and rely on the packages from step 3.
Java
Ubuntu 26.04 still has OpenJDK 17, and it adds 21. Current Jicofo and videobridge packages accept either, so the upgrade needs no Java change. Debian 13 dropped OpenJDK 17; there you need Jitsi 2.0.10888 or newer, which runs on Java 21.
Verify
readlink -f /usr/bin/lua
sudo prosodyctl about | grep -E 'Lua version|LuaFileSystem'
sudo prosodyctl check config
systemctl is-active prosody jicofo jitsi-videobridge2The first command prints /usr/bin/lua5.4. prosodyctl about shows Lua 5.4 and a LuaFileSystem version, and each service prints active. check config lists the loaded config files. On a stock Jitsi install it ends with Problems found because of the deprecated cross_domain_bosh option, which is harmless; it may also warn about DNS or certificates. What matters is that no Lua error appears. Then join a meeting at https://meet.example.com from three devices.
If it still fails
module 'X' not found: find which package gives Lua 5.4 that module withapt-cache search lua- | grep -i X, then install it.Prosody is no longer compatible with Lua 5.1:/usr/bin/luamoved to 5.1. Run theupdate-alternatives --setcommand from step 2 again.- Prosody starts but users get “You have been disconnected”: read our disconnect fixes and
sudo journalctl -u prosody -u jicofo --since "10 min ago". apt full-upgradewants to removejitsi-meet: stop and check that both repositories from step 1 load without errors insudo apt update.
What we have checked
On 2026-10-06 we ran the steps in Ubuntu 26.04.1 containers:
- With the 24.04 Prosody build and
lua5.2left over, Prosody failed withmodule 'lfs' not found. Installinglua5.4left/usr/bin/luaon 5.2. - After
update-alternatives --set lua-interpreter /usr/bin/lua5.4,prosodyctl check configpassed on Lua 5.4. It still passed after upgrading to the 26.04 Prosody build and removinglua5.2. - A fresh
apt install jitsi-meet(2.0.11248) failed withlua5.2installed, and failed with no Lua step at all becauseluarockspulled in Lua 5.1. With Lua 5.4 pinned first, it installed cleanly and Prosody started all its services. - With Lua 5.4 and
jitsi-meet-tokensinstalled, the JWT modules loaded without errors on 26.04. On 24.04 the same setup fails withmodule 'inspect' not found, so stay on Lua 5.2 there until a stable release includes PR #17928.
What we have not confirmed yet
- We have not run a real
do-release-upgradeon a production Jitsi server. A container cannot run one, so the repository step is based on the issue thread and Ubuntu’s documentation. - The reporter in #17924 was unsure which Prosody build was installed after several reinstalls.
Sources
- jitsi-meet issue #17924 Upgrade from Ubuntu 24.04 to 26.04 breaks jitsi installation, 2026-10-03 to 2026-10-05, community report with maintainer answers (saghul, damencho)
- jitsi-meet PR #17928 fix(prosody): replace lua-inspect with util.serialization, merged 2026-10-05, source code
- Jitsi handbook commit 6d38474 docs(quickstart): drop the lua5.2 install step, 2026-10-05, official doc change
- Jitsi handbook, Self-Hosting Guide: Debian/Ubuntu server, checked 2026-10-06, official doc
- Ubuntu 26.04 lua-filesystem file list, checked 2026-10-06, package record
- Prosody package repository and Prosody dependencies, checked 2026-10-06, official docs
- jitsi-meet issue #16798 Jitsi Meet does not install on Debian Trixie, 2025-12-28 to 2026-03-30, community report with maintainer answers
- Ubuntu Server: upgrade your release, checked 2026-10-06, official doc
- update-alternatives manual, official doc
Need a hand?
If Prosody still will not start, contact our engineers with the output of sudo prosodyctl about and sudo journalctl -u prosody --since "10 min ago". Our support plans cover OS upgrades of Jitsi servers.