Troubleshooting
This page covers the problems you may encounter with your XOA, and how to get out of them.
If you have issues with an XO installed from the sources, please go through the community support checklist first.
First reflex: xoa check
Whenever something feels wrong, start with the built-in check:
# xoa check ✔ Node version ✔ Disk space for /var ✔ Disk space for / ✔ XOA version ✔ xo-server config syntax ✔ Appliance registration ✔ Internet connectivity
Anything other than a clean list of green ticks (errors, lost packets, missing entries) points at the problem area. Then look for the matching section below, and check the logs.
Deployment issues
Deploy error: no default SR
Auto deploy failed. - No SR specified and Pool default SR is null
The pool you are importing XOA on has no default storage repository. Find the UUID of the SR you want:
# xe sr-list
then set it as the pool default (press Tab after uuid= to autofill your pool UUID):
# xe pool-param-set uuid=<pool-uuid> default-SR=<sr-uuid>
Run the deploy again: it will work.
XOA unreachable, or starts then shuts down after a few seconds
XOA runs in HVM mode, which requires hardware virtualization extensions (any hardware since roughly 2011). Check on your host:
# grep -cE 'vmx|svm' /proc/cpuinfo
A result of 0 means the extensions are absent or disabled: enable virtualization in your BIOS/UEFI settings, or XOA cannot run on this hardware.
Access issues
Set or recover the XOA VM password
No password is set for the xoa system user by default. Set (or reset) one through the XenStore data of the VM, from your XCP-ng host:
# xe vm-param-set uuid=<UUID> xenstore-data:vm-data/system-account-xoa-password=<password>
Restart the VM, then log in over SSH with the xoa user and that password.
Recover the web login password
From the XOA CLI (see first console connection):
# sudo xo-server-recover-account youremail@here.com
It prompts for a new password. If the email does not exist in XO yet, an admin account is created with it: handy as a rescue account.
Empty page after login
Your antivirus or firewall is blocking WebSockets, the protocol XO clients use to talk to xo-server (see architecture). Switch to HTTPS: WebSockets are then encapsulated in TLS, out of reach of the interception.
User login failures
Look at the xo-server logs while reproducing the login attempt: the reason is displayed there.
Logs
- From the web interface: Settings, then Logs.
- From the CLI, with
journalctl:
# journalctl -u xo-server -f -n 50
# journalctl -u xoa-updater -f -n 50
Start the tail, reproduce your issue, and read the error as it happens.
Runtime issues
Migration of the XOA VM fails
XOA ships with a static max memory of 16 GiB, which can break its own live migration:
"Failed","Migrating VM 'XOA' from '<origin_hostname>' to '<destination_hostname>'
Internal error: Xenops_interface.Internal_error("Domain.Xenguest_failure(\"Error while waiting for suspend notification…\")")
Reduce the static max memory of the XOA VM to a lower value and migrate again.
xo-server out of memory
If xo-server crashes with FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory in its logs, give it more room, in two steps.
First, increase the memory of the XOA VM itself (4 or 8 GiB).
Then raise the memory limit of the xo-server process: edit /etc/systemd/system/xo-server.service and find this line:
ExecStart=/usr/local/bin/xo-server
Replace it with the following line, where the number is your VM memory in MiB minus about 512 MiB for the OS (for a 4096 MiB VM, use 3584):
ExecStart=/usr/local/bin/node --max-old-space-size=3584 /usr/local/bin/xo-server
# systemctl daemon-reload
# systemctl restart xo-server
Stats not showing on a pool
If statistics are missing for all VMs and hosts of one specific pool, check whether a Backup network is configured on it (pool Advanced tab), and make sure XO can reach all hosts of the pool through that network.
Ghost tasks
If ghost tasks accumulate, try in order:
- refresh the web page
- disconnect and reconnect the pool owning the tasks
- restart the XAPI toolstack of the XCP-ng pool master
- restart
xo-server
Network issues
Check the current configuration with ip addr (the default interface is enX0 or eth0), and make sure any external firewall allows the XOA IP. Reconfigure with xoa network static or xoa network dhcp, as described in Network configuration.
Updater issues
Behind a transparent proxy
Transparent proxies usually break the updater with SSL/TLS errors. Allow it to work:
# sudo -s # echo NODE_TLS_REJECT_UNAUTHORIZED=0 >> /etc/xo-appliance/env # npm config -g set strict-ssl=false # systemctl restart xoa-updater
Then run the update again.
Redownload and rebuild packages
If a package disappeared after a failed build or a manual mistake:
# rm /var/lib/xoa-updater/update.json # xoa-updater --upgrade
Renew the self-signed certificate
If the provided certificate expired, generate a new one, as root on the appliance:
# cd /etc/ssl # cp cert.pem cert.pem-old # cp key.pem key.pem-old # openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -nodes -days 360 # systemctl restart xo-server.service
Reset the configuration
Last resort: reset the xo-server database. This deletes all configured users, servers and backup jobs.
# redis-cli # FLUSHALL # systemctl restart xo-server.service
You can then log in again with admin@admin.net / admin.
Backup issues
Backups have their own page: Backup troubleshooting.
Still stuck?
Open a ticket from your personal space on account.vates.tech: describe the issue, and attach the xoa check output and the relevant logs.
Open a support tunnel
XOA is the only way to get our pro support, which can investigate remotely through a secure SSH tunnel. Our team will ask you for a "support ID": you get it by opening the tunnel, either from the web UI (XOA menu, Support section) or from the CLI if the web UI is not reachable:
# xoa support tunnel The support tunnel has been created. Do not stop this command before the intervention is over! Give this id to the support: 40713
Give this number to the support team: only Vates holds the private key for the tunnel. Close it with Ctrl+C once your issue is solved.
The tunnel uses the bundled xoa-support user. You can deactivate this account with chage -E 0 xoa-support, and re-activate it with chage -E 1 xoa-support.