Problem with update to 26.1

Relution 26.1 – Docker Container Fails to Start (Permission Denied on Temp Directory)

Problem

After updating to Relution 26.1, the Docker container no longer starts. The container log repeatedly shows the following error:

Exception in thread "main" java.lang.reflect.InvocationTargetException
Caused by: java.io.IOException: Permission denied
    at java.base/java.io.File.createTempFile(File.java:2184)
    at io.relution.boot.Main.checkTempDirectory(Main.java:291)
    at io.relution.boot.Main.main(Main.java:216)

Root Cause

Version 26.1 introduced changes to the permissions on the internal temp directory (relution.tmp). The existing directory in the Docker volume is now owned by the wrong user, preventing the Relution service from gaining write access at startup.

On startup, the service checks access to the temp directory:

  • If it is not present, it will be created fresh with the correct permissions.
  • If it already exists, the service attempts to clear it — which fails with incorrect ownership.

Solution

Step 1 – Stop the Docker Container

Stop the affected Relution container before making any changes to the volume:

docker stop <container-name>

Replace <container-name> with the actual name of your container, e.g. docker_relution.


Step 2 – Locate the Temp Directory in the Volume

Navigate to the Docker volumes directory and search for the affected directory:

cd /var/lib/docker/volumes
find -type d -name relution.tmp

The output will show the full path to the directory, for example:

./relution_data/_data/relution.tmp

Step 3 – Remove the Temp Directory

Delete the directory while the container is stopped:

find -type d -name relution.tmp -exec rm -rvf "{}" \;

Note: It is safe to delete this directory. Relution will automatically recreate it with the correct permissions on the next startup. No persistent data is stored in this directory.


Step 4 – Restart the Docker Container

Start the container again:

docker start <container-name>

Then verify the logs to confirm the service started successfully:

docker logs <container-name> --tail 50

Expected Result

After restarting, Relution will automatically recreate the relution.tmp directory with the correct permissions. The Permission denied error will no longer appear and the service will start normally.


Additional Notes

  • This issue occurs only when updating from an older version to 26.1, as the directory already exists with outdated permissions.
  • Fresh installations of version 26.1 are not affected.
  • If the error persists after following these steps, check whether any additional volume mounts contain their own tmp directories.