Feature request (Windows version): Better/clearer error messages regarding Cryptomator disk write/modify access

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?

Not directly. It is described how Cryptomator works and therefore I would assume it as obvious that the place where you want to store your vault must be accessible with write permissions. How else should you be able to write anything into you vault if the app is not allowed to write into you vault storage location. Or am I’m missing something?

While not directly addressing the “clearer error messages” topic, this might be of interest:

Hi guys,

I haven’t logged in for over a year.

In reply to Michael, yes, I got your point about the disk not having adequate permissions, hence the error, which makes total sense. And given my (then) unfamiliarity with Cryptomator, I wasn’t thinking clearly (or clearly, I wasn’t thinking!).

When I first encountered the error, I had forgotten that I had intentionally set up the drive to deny access from any users except for one user account that I use as a Backup Operator. Duh-uh. I then tried to copy some data into the Crypt from another account that has only Read access to the disk, rather than logging into the Backup User account to perform the copy. When the long list of parameters appeared, I was sort of caught off guard and confused by what was happening. I just thought a more explicit message such as “Write access denied” rather than simply “Access Denied” might have immediately jogged my thought processes to clue in what was happening and why, instead of seeing the long list of biffle-baffle.

Thanks for your help!

Dave