Problems writing into vault (Access Denied)

I am using version 1.11.0 (msi-4970) with “WinFsp (Local Drive)” (WinFsp 2023 2.0.23075). When trying to update a file in my vault, I get an “Access Denied” error. In my cryptomator0.log I see the following error for multiple files:

09:05:56.435 [Thread-21] ERROR o.c.frontend.fuse.ReadOnlyAdapter - read /Dokumente/Arbeit/[REDACTED]/.obsidian/appearance.json failed.
java.nio.channels.NonReadableChannelException: null
	at org.cryptomator.cryptofs@2.6.7/org.cryptomator.cryptofs.ch.AbstractFileChannel.assertReadable(AbstractFileChannel.java:102)
	at org.cryptomator.cryptofs@2.6.7/org.cryptomator.cryptofs.ch.AbstractFileChannel.read(AbstractFileChannel.java:149)
	at org.cryptomator.frontend.fuse@4.0.0-beta4/org.cryptomator.frontend.fuse.OpenFile.read(OpenFile.java:59)
	at org.cryptomator.frontend.fuse@4.0.0-beta4/org.cryptomator.frontend.fuse.ReadOnlyFileHandler.read(ReadOnlyFileHandler.java:62)
	at org.cryptomator.frontend.fuse@4.0.0-beta4/org.cryptomator.frontend.fuse.ReadOnlyAdapter.read(ReadOnlyAdapter.java:337)
	at org.cryptomator.jfuse.api@0.6.3/org.cryptomator.jfuse.api.FuseOperationsDecorator.read(FuseOperationsDecorator.java:117)
	at org.cryptomator.jfuse.win@0.6.3/org.cryptomator.jfuse.win.FuseImpl.read(FuseImpl.java:220)

I also see warnings like this:

08:52:18.418 [Thread-11] WARN  o.c.frontend.fuse.ReadWriteAdapter - Setting posix permissions not supported by underlying file system.

and this error:

08:50:10.952 [Thread-20] ERROR o.c.frontend.fuse.ReadOnlyAdapter - getattr failed.
java.lang.IllegalStateException: Recursive update
	at java.base/java.util.concurrent.ConcurrentHashMap.compute(Unknown Source)
	at com.github.benmanes.caffeine/com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2666)
	at com.github.benmanes.caffeine/com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2649)
	at com.github.benmanes.caffeine/com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:112)
	at com.github.benmanes.caffeine/com.github.benmanes.caffeine.cache.LocalManualCache.get(LocalManualCache.java:62)
	at org.cryptomator.cryptofs@2.6.7/org.cryptomator.cryptofs.CryptoPathMapper.getCiphertextDir(CryptoPathMapper.java:161)
	at org.cryptomator.cryptofs@2.6.7/org.cryptomator.cryptofs.CryptoPathMapper.getCiphertextFilePath(CryptoPathMapper.java:122)
	at org.cryptomator.cryptofs@2.6.7/org.cryptomator.cryptofs.CryptoPathMapper.lambda$getCiphertextDir$0(CryptoPathMapper.java:163)
	at com.github.benmanes.caffeine/com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2668)
	at java.base/java.util.concurrent.ConcurrentHashMap.compute(Unknown Source)
	at com.github.benmanes.caffeine/com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2666)
	at com.github.benmanes.caffeine/com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2649)
	at com.github.benmanes.caffeine/com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:112)
	at com.github.benmanes.caffeine/com.github.benmanes.caffeine.cache.LocalManualCache.get(LocalManualCache.java:62)
	at org.cryptomator.cryptofs@2.6.7/org.cryptomator.cryptofs.CryptoPathMapper.getCiphertextDir(CryptoPathMapper.java:161)
	at org.cryptomator.cryptofs@2.6.7/org.cryptomator.cryptofs.CryptoPathMapper.getCiphertextFilePath(CryptoPathMapper.java:122)
	at org.cryptomator.cryptofs@2.6.7/org.cryptomator.cryptofs.CryptoPathMapper.lambda$getCiphertextDir$0(CryptoPathMapper.java:163)
	at com.github.benmanes.caffeine/com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2668)
	at java.base/java.util.concurrent.ConcurrentHashMap.compute(Unknown Source)
	at com.github.benmanes.caffeine/com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2666)
	at com.github.benmanes.caffeine/com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2649)
	at com.github.benmanes.caffeine/com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:112)
	at com.github.benmanes.caffeine/com.github.benmanes.caffeine.cache.LocalManualCache.get(LocalManualCache.java:62)
	at org.cryptomator.cryptofs@2.6.7/org.cryptomator.cryptofs.CryptoPathMapper.getCiphertextDir(CryptoPathMapper.java:161)
	at org.cryptomator.cryptofs@2.6.7/org.cryptomator.cryptofs.CryptoPathMapper.getCiphertextFilePath(CryptoPathMapper.java:122)
	at org.cryptomator.cryptofs@2.6.7/org.cryptomator.cryptofs.CryptoPathMapper.getCiphertextFileType(CryptoPathMapper.java:97)
	at org.cryptomator.cryptofs@2.6.7/org.cryptomator.cryptofs.attr.AttributeProvider.readAttributes(AttributeProvider.java:40)
	at org.cryptomator.cryptofs@2.6.7/org.cryptomator.cryptofs.CryptoFileSystemImpl.readAttributes(CryptoFileSystemImpl.java:255)
	at org.cryptomator.cryptofs@2.6.7/org.cryptomator.cryptofs.CryptoFileSystemProvider.readAttributes(CryptoFileSystemProvider.java:296)
	at java.base/java.nio.file.Files.readAttributes(Unknown Source)
	at org.cryptomator.frontend.fuse@4.0.0-beta4/org.cryptomator.frontend.fuse.ReadOnlyAdapter.getattr(ReadOnlyAdapter.java:198)
	at org.cryptomator.jfuse.api@0.6.3/org.cryptomator.jfuse.api.Fuse$MountProbeObserver.getattr(Fuse.java:210)
	at org.cryptomator.jfuse.win@0.6.3/org.cryptomator.jfuse.win.FuseImpl.getattr(FuseImpl.java:174)

The underlying file system is NTFS, Windows 11 Enterprise. The folder is part of OneDrive (private, not “for business”).

The NTFS access rights are full access inside and outside the vault.

Welcome to the Cryptomator Community :slightly_smiling_face:

This is a known issue and will be fixed with the next Cryptomator patch release. We’ll publish a beta this week, which you can use for testing.

This can be ignored. It is a logging bug on our side and will be fixed in the next minor Cryptomator release.

Generally, this exception states an application requested to read from a file which was only opened for writing. This can be an error in the external application, but can also be something on our side. Can you send us a log file with debug mode enabled? You can send it via PM to my account or via mail to support@cryptomator.org.

Please note, that the debug log might contain sensitve informations. Ensure that this is okay for you or try to reproduce the issue inside a new vault.

1 Like

Hello Sven, we recieved the log file. It only contained the “recursiveUpdate” error, so updating to the soon to be released 1.11.1 version will resolve the issue. You can already try out the beta:

Maybe the other problem was a result of this bug.

Hello, i think i have the same problem :
Version 1.11.0 (msi-4970)
CryptomatorBug

Hi, I’ve installed the beta version and the issue is gone - great - thanks a lot!