Issues with Traveler timezone on Ubuntu
Daniel Nashed – 5 December 2025 15:22:55
This is really a weird issue. It is not 100% why this happens on Ubuntu but not on Redhat Linux.
The settings are the same. But it looks like the two platforms handle timezones a bit differently in the back-end.
I ran into it in Docker during automation testing and got a ping from a customer today.
Background:
Traveler uses Java code but is a Domino application. So there are multiple components playing together.
It is essential that both components: 1. The Domino core server code and 2. The Traveler Java code do see the exact same timezone information.
Therefore the Traveler team added a check to let the server only start if this all matches.
Error reported by Traveler at start-up time which lets Traveler fail to start.
Traveler: SEVERE *system Timezone discrepency. Domino reports 'W. Europe' which supports daylight savings and Java reports 'Koordinierte Weltzeit' (Etc/UTC) which does not support daylight savings.
Traveler: SEVERE *system This discrepency may result in calendar events being shifted on devices synchronizing with this server. Please alter these values to be equivalent and make sure all operating system and Domino server fixes related to daylight savings time have been installed.
Traveler: SEVERE *system Traveler server could not be started. The exception was ComponentNotStartedException. Exception Thrown: com.lotus.sync.util.ComponentNotStartedException: Timezone discrepency.
Linux background & Solution:
There are two timezone settings. One is controlled via timedatectl on Linux native.
The other part is handled by the TZ variable.
In our case on a native Domino server on Ubuntu the TZ variable was not set.
Adding the variable isn't that simple on a Domino server started as a systemd service, because the normal export TZ will not work depending where you add it.
One way would be to add it into the systemd service configuration.
But I added another way today in the start script.
In the same way you could specify DOMINO_LANG which turns into LANG when the server is started, you can now specify DOMINO_TZ which is exported as TZ before the server is started by the start script.
For a container image you would set the TZ variable in your container definition.
In my case the variable looks like this for Germany:
TZ=Europe/Berlin
How to check if is is set
The Domino start script writes a notes.log, which dumps all configuration including the environment used to start the server (along with security limits and other details).
This helps to find out what is going on.
---
For completeness here is the output from timedatectl (which only works on a Linux native server, not on a container).
timedatectl
Local time: Fri 2025-12-05 16:17:55 CET
Universal time: Fri 2025-12-05 15:17:55 UTC
RTC time: Fri 2025-12-05 15:17:55
Time zone: Europe/Berlin (CET, +0100)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
A more general check
ls -l /etc/localtime
lrwxrwxrwx 1 root root 33 Dec 5 12:53 /etc/localtime -> /usr/share/zoneinfo/Europe/Berlin
The timezone should point to the right zoneinfo. But that alone isn't sufficient on Ubuntu. You need the TZ variable to be set.
Another important detail:
You should always use a NTP server via chrony. This is specially important on VMs which are not always on.
- Comments [0]