Hi @vincen
Steps torecovery
1. Stop CODE completely
sudo systemctl stop coolwsd
Verify nothing is running:
ps aux | grep cool
2. Remove the broken systemplate (this is safe)
Do not delete /opt/cool entirely.
sudo rm -rf /opt/cool/systemplate
3. Recreate systemplate with correct permissions
Run:
sudo coolwsd-systemplate-setup
This command:
- Recreates
/opt/cool/systemplate
- Copies correct files for the installed CODE version
- Fixes ownership and permissions
Verify:
ls -ld /opt/cool/systemplate
Expected:
4. Ensure ownership is correct
sudo chown -R cool:cool /opt/cool
This step is critical on shared servers.
5. Check coolwsd.xml hosts config
Since you already hit this change, confirm you now have something like:
<storage desc="Backend storage">
<wopi allow="true">
<host allow="true">cloud1.example.com</host>
<host allow="true">cloud2.example.com</host>
</wopi>
</storage>
No wildcards anymore in recent versions.
6. Start CODE again
sudo systemctl start coolwsd
sudo systemctl status coolwsd
Then test opening a document from Nextcloud.
If it still fails
Check logs immediately after startup:
journalctl -u coolwsd -n 200 --no-pager
If you still see systemplate-related errors, check whether /opt is mounted with ro or restrictive options:
mount | grep /opt
That is another common issue on shared hosts.
Recent CODE versions require the systemplate to be writable during startup so it can be refreshed.
Why this happens (important)
systemplate is a template filesystem used to spawn document processes.
After updates:
/opt/cool/systemplate contains old files
- CODE tries to update them
- But the directory is read-only
- Forkit refuses to continue
- Result: documents fail to open everywhere
This happens a lot on:
- Shared hosting
- Hardened filesystems
- Systems with custom mount options
- Older installations upgraded many times
Thanks
Darshan