When trying to unlock a Cryptomator vault located on a particular hard drive (E:), the vault wouldn’t unlock and I received the error message “An unexpected error occurred”, along with the following list of parameters:
java.nio.file.AccessDeniedException: E:\Crypt-E\c at java.base/sun.nio.fs.WindowsException.translateToIOException(Unknown Source) at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source) at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source) at java.base/sun.nio.fs.WindowsFileSystemProvider.createDirectory(Unknown Source) at java.base/java.nio.file.Files.createDirectory(Unknown Source) at java.base/java.nio.file.Files.createAndCheckIsDirectory(Unknown Source) at java.base/java.nio.file.Files.createDirectories(Unknown Source) at org.cryptomator.cryptofs.common.FileSystemCapabilityChecker.determineSupportedFileNameLength(FileSystemCapabilityChecker.java:118) at org.cryptomator.cryptofs.common.FileSystemCapabilityChecker.determineSupportedFileNameLength(FileSystemCapabilityChecker.java:95) at org.cryptomator.common.vaults.Vault.unlockCryptoFileSystem(Vault.java:108) at org.cryptomator.common.vaults.Vault.lambda$getCryptoFileSystem$0(Vault.java:98) at org.cryptomator.common.LazyInitializer.lambda$invokeFactoryIfNull$1(LazyInitializer.java:62) at java.base/java.util.concurrent.atomic.AtomicReference.updateAndGet(Unknown Source) at org.cryptomator.common.LazyInitializer.initializeLazily(LazyInitializer.java:49) at org.cryptomator.common.vaults.Vault.getCryptoFileSystem(Vault.java:98) at org.cryptomator.common.vaults.Vault.unlock(Vault.java:127) at org.cryptomator.ui.unlock.UnlockWorkflow.attemptUnlock(UnlockWorkflow.java:102) at org.cryptomator.ui.unlock.UnlockWorkflow.call(UnlockWorkflow.java:79) at org.cryptomator.ui.unlock.UnlockWorkflow.call(UnlockWorkflow.java:42) at javafx.concurrent.Task$TaskCallable.call(Task.java:1425) at java.base/java.util.concurrent.FutureTask.run(Unknown Source) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.base/java.util.concurrent.FutureTask.run(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source)
I initially missed seeing the “Access Denied” warning at the beginning of the parameter list, but eventually I discovered that the problem was because my Windows user account (i.e. a Standard User account) didn’t have “write” or “modify” access to the affected hard disk E:. I have disk E: set up as read-only for the Standard User account, but write accessible from an Adminstrator account and another Standard User account from which I perform data disk backups of my main data drive D: The user account that I was using when I tried to unlock the vault is my normal user account that I use for day-to-day work and it only has read access to disk E:
It would be helpful if the error/warning message more clearly indicated that the user account from which one is running Cryptomator, needs write/modify access to the disk containing the Cryptomator vault. Is this documented anywhere in the official Cryptomator user documentation?