Skip to content

Troubleshooting ​

All commands run on the server with sudo.

Current state ​

bash
sudo eurion-ctl status       # services and infrastructure
sudo eurion-ctl status -v    # plus memory, disk and load
sudo eurion-ctl health       # stopped containers, restarts, disk, database connections, backups
sudo eurion-ctl ps           # every Eurion container with status and image

Reading eurion-ctl status

  • healthy: the service answers its health check.
  • degraded: the container runs but does not answer /health.
  • not found: the container does not exist. This is normal for features switched off in the configuration (for example ai-service, transcription-service and bridge-service), and the summary then says Degraded although everything works.

The most reliable check:

bash
sudo docker ps --filter health=unhealthy --filter status=restarting

If the list is empty, every container is healthy. eurion-minio-init having exited with code 0 is normal: it only runs once.

Installed version:

bash
grep eurion_version /opt/eurion/deploy/generated/group_vars/all.yml

Logs ​

bash
sudo eurion-ctl logs                              # the last lines from every container
sudo eurion-ctl logs messaging-service            # follow one service (Ctrl+C stops)
sudo eurion-ctl logs gateway --no-follow -n 500   # the last 500 lines

The name is the container name without eurion-. Examples: gateway, identity-service, messaging-service, file-service, video-service, admin-service, traefik, postgres, coturn.

Other logs:

LogWhere
Updates/opt/eurion/logs/upgrade-<time>.log, and upgrade-history.log with one line per successful update
The update servicejournalctl -u eurion-updater
Current or last update started from the portal/var/lib/eurion-updater/job.log
Backups/opt/eurion/logs/backup.log
All containers, searchableGrafana → Explore → Loki, see Monitoring

Restarting ​

bash
sudo eurion-ctl restart messaging-service   # one service, waits for its health check
sudo eurion-ctl restart all                 # all Eurion services
sudo eurion-ctl restart infra               # PostgreSQL, Redis, Kafka, MinIO, search (brief outage)

Common problems ​

The installation stops ​

Read the last task (TASK [...]) that Ansible printed.

MessageCause
Minimum 8GB RAM required / Minimum 4 CPU cores requiredThe server is too small, see requirements.
Unsupported OSThe operating system is not supported.
Errors about missing images, or pull access denied for eurion-…eurion_version does not match the installation file, or the images have not been loaded (step 6 of the installation).
Wait for each service to be healthy failsA service does not start. Look at its log with eurion-ctl logs <service> --no-follow.

The installation can be run again once the problem is fixed. Passwords are kept.

The browser warns about the certificate ​

  • With tls.method: selfsigned this is expected. Switch to letsencrypt.

  • With letsencrypt: check that the name points at the server and that ports 80 and 443 are reachable from the internet. Look at Traefik's log:

    bash
    sudo eurion-ctl logs traefik --no-follow -n 200 | grep -i -E 'acme|certificate'
  • Check which certificate is served:

    bash
    openssl s_client -connect app.example.se:443 -servername app.example.se </dev/null 2>/dev/null \
      | openssl x509 -noout -issuer -dates

Calls connect but there is no audio or video ​

Almost always ports or addresses:

  1. turn.example.se must point at the server's public address.
  2. 3478 TCP/UDP, 49152–65535 UDP and 10000–10100 UDP must be open, see DNS and firewall.
  3. server.public_ip must be the public address and server.host the server's own address.
  4. The TURN server must be running: sudo docker ps --filter name=eurion-coturn and sudo eurion-ctl logs coturn --no-follow -n 100.

No e-mail arrives ​

See Outgoing e-mail.

No alerts ​

Alerts are only sent if smtp.host is filled in. See Monitoring.

The disk fills up ​

bash
sudo eurion-ctl disk

Shows what takes up space and offers to clean up unused Docker resources. Remove old versions' images with eurion-ctl prune-images <old version> after a successful update.

The update fails ​

What you seeWhat to do
Update to … failed, rolled back to …The server runs the old version again. Open Log on the page and send the log to support.
Last check failedThe server cannot reach the update channel. Check outbound HTTPS to updates.eurion.se and journalctl -u eurion-updater.
latest.json is not signed by a trusted key or BAD SIGNATUREDo not install. Contact support.
Can't be installed automatically: no bundle for version …There is no bundle that matches your version. Contact support for a full bundle.
This account signs in with azure; password confirmation is not availableSign in with a local super administrator account.
Not enough diskFree up space, see above.
Cannot reach the server all the timeCheck systemctl status eurion-updater and sudo eurion-ctl status.
The page shows nothing at allTry the manual update.

Collecting information for a support ticket ​

Run this and attach the file to the ticket:

bash
OUT=/tmp/eurion-support-$(date +%Y%m%d-%H%M).txt
{
  echo "== Version";    grep eurion_version /opt/eurion/deploy/generated/group_vars/all.yml
  echo "== System";     uname -a; grep PRETTY_NAME /etc/os-release; nproc; free -h; df -h / /var/lib/docker
  echo "== Containers"; docker ps -a --filter name=eurion- --format '{{.Names}}\t{{.Status}}\t{{.Image}}'
  echo "== Health";     eurion-ctl health
  echo "== Updates";    tail -n 20 /opt/eurion/logs/upgrade-history.log
  echo "== Last update log"; tail -n 200 "$(ls -1t /opt/eurion/logs/upgrade-*.log 2>/dev/null | head -1)"
  echo "== Updater";    journalctl -u eurion-updater --no-pager -n 100
} > "$OUT" 2>&1
echo "$OUT"

Run the block as root (sudo -i first). Add the log for the service that misbehaves:

bash
sudo eurion-ctl logs <service> --no-follow -n 500 > /tmp/<service>.log 2>&1

Never send passwords

Do not attach secrets.yml, /opt/eurion/compose/.env, /etc/eurion/updater.json or backups. Read through the files before you send them; remove passwords and personal data that show up in logs.

Also include in the ticket:

  • what happened and when (time and time zone),
  • what you did just before (update, changed configuration, restart),
  • whether it affects all users or some,
  • error messages word for word or as a screenshot.

See Support.

Eurion — communication that runs on your own server.