Troubleshooting HCL Local License Server
You can troubleshoot some common issues that you might encounter during the installation or operation of HCL Local License Server (LLS).
Log Files for Troubleshooting
The following files are created in the installation directory. These help you identify and resolve installation or runtime issues.
| File | Description |
|---|---|
| installer.txt | Records the server fingerprint, the deployment type, and the port. |
| service.log | Records startup and license processing messages. |
| logs/hcl_lls.log | The detailed diagnostic log. It records all server activity, including installation and runtime errors such as fingerprint mismatch, FQDN or TLS issues, and port conflicts. Send this file to HCL Support when reporting a problem. |
| logs/hcl_lls_features.log | The day-to-day operational log. It records license leases, active features, and pool information, and is the file to check for normal license activity. |
| logs/hcl_lls_pools.log | Updates whenever you add or remove license files, showing active license pools. |
For a Docker deployment, you can also read the logs from the container:
docker compose logs -f
docker exec hcl-lls-server cat /app/installer.txt
docker exec hcl-lls-server cat /app/service.log
On a Docker deployment, the container creates the log files so that they are not readable by every user on the host. Use sudo to read hcl_lls.log on the host.
For a native installation, the service messages are also available from the operating system: use Event Viewer (eventvwr.msc) on Windows, or the following command on Linux:
journalctl -u HCL-Local-License-Server-5.4.0.service
To change how much detail is written to the log files, see Log Configuration.
Fingerprint mismatch
A fingerprint mismatch typically occurs when the system configuration no longer matches the parameters used when the fingerprint was originally generated.
Causes on a native installation
-
The network adapter, and its MAC address, used during fingerprint creation is no longer available or has been disabled or removed.
-
The LLS port number has changed after installation.
-
The fingerprint was generated using a temporary or unstable adapter, such as Wi-Fi, which may be turned off or unavailable during validation.
Causes on a Docker deployment
-
The port number was changed after the license file was generated, either by running the update.bat/sh file or by editing the .env file.
-
The database folder was deleted or replaced, which generates a new per-instance value.
On a Docker deployment, the fingerprint is stable across the following actions:
| Action | Does the fingerprint change? |
|---|---|
docker compose restart |
No |
docker compose stop and
start |
No |
docker compose down and
up |
No |
| Changing the port, by any method | Yes. Generate a new license file. |
| Deleting or replacing the database folder | Yes. Generate a new license file. |
Resolution
-
Retrieve the current fingerprint from the installer.txt file and re-generate the license file in My HCLSoftware (MHS). See Post-installation: Generating the license file.
-
On a native installation, ensure that stable and permanent network interfaces, such as wired Ethernet adapters, are active during LLS installation.
-
Avoid generating fingerprints using transient or removable adapters such as Wi-Fi dongles or virtual adapters.
-
If a mismatch occurs on a native installation, re-enable the original network adapter used during fingerprint generation, or regenerate the fingerprint and update the license accordingly.
-
LLS does not monitor Wi-Fi on/off status after installation.
-
Verification relies only on the presence of the MAC address that was used when the fingerprint was generated.
TLS certificate expired or invalid
Cause
An expired or invalid TLS certificate was used during installation or configuration.
Resolution
Generate a new self-signed TLS certificate by running the utility.bat/sh file, or use a valid third-party CA-signed certificate. For third-party certificates, contact your local IT team. Ensure the Common Name (CN) in the certificate matches the configured FQDN, then apply it by running the update.bat/sh file. See Configuring HCL Local License Server.
On a Docker deployment, an expired certificate stops the container. The container then retries about once a minute until the certificate is replaced.
Hostname or FQDN validation failure
Cause
The Fully Qualified Domain Name (FQDN) entered during installation or update is invalid, does not meet the required format, or cannot be resolved. This also occurs when you install LLS in a local, offline, or test environment where a resolvable domain name is not available.
An example error is:
curl: (51) SSL: no alternative certificate subject name matches target host name
Resolution 1: correct the FQDN
Ensure the FQDN follows the required validation rules:
-
Must not be empty.
-
Must not contain spaces or invalid characters.
-
Must match the Common Name (CN) of the TLS certificate.
-
Total length must be 253 characters or fewer.
-
Cannot start or end with a dot ( . ).
-
Must contain at least one dot ( . ). A minimum of two labels is required, for example
server.domain. -
Consecutive dots ( .. ) are not allowed.
-
Allowed characters are letters (A-Z, a-z), digits (0-9), dots ( . ), and hyphens ( - ).
-
Each label, that is each portion between dots, must be 1 to 63 characters long and cannot start or end with a hyphen ( - ).
-
The last label cannot be all numeric.
-
An FQDN that contains
xn--indicates a Punycode domain, used for internationalized domain names.
If DNS resolution is unavailable, add a hostname-to-IP mapping to the hosts file:
-
On Windows: C:\Windows\System32\drivers\etc\hosts
-
On Linux: /etc/hosts
An example hosts entry is:
192.168.1.25 myllsserver.example.com
After correcting the FQDN, retry the installation.
Resolution 2: bypass FQDN validation
If you are setting up LLS in a local, offline, or non-production environment where a resolvable domain is not available, you can skip FQDN validation. Go to the installer directory and run one of the following commands:
utility.bat --skip-fqdn-validation
./utility.sh --skip-fqdn-validation
License file not loaded or missing pools
Cause
The license file was not copied correctly, cannot be read by the server, or does not match the active fingerprint.
Resolution
-
Copy the valid license file to <lls_install_directory>/licenses.
-
Verify the deployment and license allocation in My HCLSoftware (MHS).
-
Check the hcl_lls_pools.log file to confirm successful initialization.
-
On a Docker deployment, check the file permissions. The container runs as a non-root user and cannot change file permissions itself. If hcl_lls.log reports a permission error, run
chmod 644 licenses/*.licenseon the host. On VirtualBox shared folders and SMB or CIFS mounts, chmod has no effect; set the permissions in the mount options instead, for examplefmode=644orfile_mode=0644.
Container stops immediately after starting
Cause
An invalid TLS certificate path, a port that is already in use, or a missing config.json file.
Resolution
Check the container logs:
docker compose logs
Verify that the port is not in use:
ss -tlnp | grep <port> # Linux
netstat -ano | findstr :<port> # Windows
Port already in use
Cause
Another process on the host is already using the configured port. On a Docker deployment the container publishes its port on the host, so a conflict on the host prevents the container from starting.
Resolution
Change the port by running the update.bat/sh file. See Configuring HCL Local License Server. Changing the port regenerates the fingerprint, so you must generate a new license file in My HCLSoftware (MHS).
TLS mode not taking effect
Resolution
-
On a Docker deployment, ensure that config.json is in the same folder as docker-compose.yml.
-
Check that the value is
BASIC,SECURED, orMODERN. The values are case-sensitive. -
Restart the LLS service after changing the value. See TLS Security Configuration.
Log files not updating after a backup restore or version upgrade on a Windows Server native installation
Symptom
The files in the logs folder stop updating. Licensing continues to work normally and no message is displayed. In service.log in the installation directory, the entries end with Access is denied.
Applies to
- Windows Server native installations in which the installer restored the certificates, licenses, logs, and port from a backup. This happens when you answer Y at the restore prompt, and on every version upgrade, because an upgrade always creates a backup of the existing installation and restores it onto the new installation automatically.
- Windows 11 installations are not affected.
- Docker deployments are not affected.
- Linux installations are not affected.
Cause
The LLS service runs under
the built-in Windows LocalService account, which is deliberately
low-privilege. It can write the files that it creates itself, but not the files that
the installer places in the installation directory, because the installer runs
elevated. The default drive-root permissions grant the required access on Windows
11, but the Windows Server defaults do not.
Workaround
Run the following command in an administrator Command Prompt, and then restart the LLS service:
icacls "<installation directory>" /grant "*S-1-5-19:(OI)(CI)M" /T
For example:
icacls "C:\HCL_LLS5.4" /grant "*S-1-5-19:(OI)(CI)M" /T
The command grants Modify access to *S-1-5-19, the well-known
security identifier of the LocalService account, for the
installation folder and its contents. No other account is affected.
For what an installation restores from a backup, see Backup and Restore.
Summary
| Issue | Possible cause | Resolution |
|---|---|---|
| Fingerprint mismatch | License file fingerprint mismatch | Regenerate the fingerprint and download the license file again |
| TLS certificate expired | Certificate invalid or expired | Generate a new self-signed or third-party certificate |
| FQDN validation failed | Invalid or unresolvable hostname | Correct the FQDN, or skip validation |
| Invalid FQDN format | Missing dot, invalid characters | Correct the format, or skip validation |
| License file not loaded | Missing or mismatched license file | Verify the licenses folder and the MHS deployment |
| Container stops after starting | Invalid certificate path, port in use, or missing config.json | Check the container logs |
| Port already in use | Another process is using the port | Change the port by running the update.bat/sh file |
| Log files stop updating after a backup restore or version upgrade | On a Windows Server native installation, the service account cannot write the restored files | Grant the service account Modify access by running the icacls command, then restart the service |