Problems while opening files on the vault with the Quicken application

Hello,

since more than a year, I have been using cryptomator and have been quite happy. However, one of my windows applications (Quicken 2014, Windows 10, 64Bit, Cryptomator 1.3.4) is continiously creating problems while accessing files on the cryotomator vault. After unlocking the cryptomator safe and click on the Quicken file on the vault, I get error messages like:

“Datei kann nicht geöffnet werden. Wenn die Datei in einer anderen Quicken-Applikation geladen ist, muss diese zuvor geschlossen werden.”
(i.e. “File can not be opened. If the file is opened in another Quicken application, the latter has to be closed.”)

“Datei wurde nicht gefunden. Überprürfen Sie den Dateinamen und wiederholen Sie den Vorgang.”
(“File was not found. Please check the file name an retry”)

Another variant of the error is that the Quicken application, while opening the file from the application file menu, can not read the content of the folder, in which the file is located. It looks like the application has no access to the folder content.

What is strange: after clicking several times on the vault share and after some failed load attemps of the file, it finally is opening the file. Typically, this will take about 3 to 5 attempts or 1-2 minutes.

Has anyone faced simular problems and knows help?
Does the included logfile provide more hints?

Best Regards,

Markus

Logfile
12:16:45.246 [main] INFO org.cryptomator.launcher.Cryptomator - Starting Cryptomator 1.3.4 on Windows 10 10.0 (amd64)
12:16:45.961 [JavaFX Application Thread] INFO o.c.launcher.MainApplication - JavaFX application started.
12:16:46.095 [JavaFX Application Thread] INFO o.c.common.settings.SettingsProvider - Settings loaded from C:\Users\Markus\AppData\Roaming\Cryptomator\settings.json
12:16:46.733 [JavaFX Application Thread] INFO org.cryptomator.jni.JniModule - loaded WinFunctions.dll
12:16:46.849 [JavaFX Application Thread] INFO org.eclipse.jetty.util.log - Logging initialized @-1ms to org.eclipse.jetty.util.log.Slf4jLog
12:16:46.922 [JavaFX Application Thread] INFO o.c.frontend.webdav.WebDavServer - Binding server socket to 127.0.0.1:42427
12:16:46.946 [JavaFX Application Thread] INFO o.e.jetty.server.AbstractConnector - Started ServerConnector@b37c366{HTTP/1.1,[http/1.1]}{127.0.0.1:42427}
12:16:48.171 [pool-4-thread-1] INFO o.c.ui.controllers.WelcomeController - Current version: 1.3.4, lastest version: 1.3.4
12:16:51.270 [JavaFX Application Thread] INFO o.c.k.WindowsProtectedKeychainAccess - Creating new keychain at path C:\Users\Markus\AppData\Roaming\Cryptomator\keychain.json
12:17:01.366 [pool-4-thread-1] INFO org.eclipse.jetty.server.Server - jetty-9.4.8.v20171121, build timestamp: 2017-11-21T22:27:37+01:00, git hash: 82b8fb23f757335bb3329d540ce37a2a2615f0a8
12:17:01.427 [pool-4-thread-1] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@dfeb070{/,null,AVAILABLE}
12:17:01.428 [pool-4-thread-1] INFO org.eclipse.jetty.server.Server - Started @-1ms
12:17:01.429 [pool-4-thread-1] INFO o.c.frontend.webdav.WebDavServer - WebDavServer started.
12:17:01.486 [pool-4-thread-1] INFO org.eclipse.jetty.server.session - DefaultSessionIdManager workerName=node0
12:17:01.486 [pool-4-thread-1] INFO org.eclipse.jetty.server.session - No SessionScavenger set, using defaults
12:17:01.487 [pool-4-thread-1] INFO org.eclipse.jetty.server.session - Scavenging every 600000ms
12:17:01.497 [pool-4-thread-1] INFO o.a.j.w.server.AbstractWebdavServlet - authenticate-header = Basic realm="Jackrabbit Webdav Server"
12:17:01.499 [pool-4-thread-1] INFO o.a.j.w.server.AbstractWebdavServlet - csrf-protection = null
12:17:01.499 [pool-4-thread-1] INFO o.a.j.w.server.AbstractWebdavServlet - createAbsoluteURI = true
12:17:01.500 [pool-4-thread-1] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@349ae58e{/LeSEy8EGQG5i/Dokumente,null,AVAILABLE}
12:17:01.500 [pool-4-thread-1] INFO o.c.f.w.s.WebDavServletController - WebDavServlet started: /LeSEy8EGQG5i/Dokumente
12:17:01.592 [pool-4-thread-1] INFO o.c.f.w.s.WebDavServletController - Mounting http://cryptomator-vault:42427/LeSEy8EGQG5i/Dokumente using org.cryptomator.frontend.webdav.mount.WindowsMounter
12:17:19.940 [Server thread 006] WARN org.eclipse.jetty.server.HttpChannel - /LeSEy8EGQG5i/Dokumente/FINANZEN/QUICKEN/QDATA.QDF
java.io.UncheckedIOException: java.nio.file.NoSuchFileException: D:\Virtual Drive\Dokumente\d\PB\B53THK4NT3EI4QYWYYI57J5RXJALLX\HLPFCIK2JIAXD56K57MYZRACI2DJNREQNVCQMP64
at org.cryptomator.frontend.webdav.servlet.DavFolder.addMemberFile(DavFolder.java:96)
at org.cryptomator.frontend.webdav.servlet.DavFolder.addMember(DavFolder.java:77)
at org.cryptomator.frontend.webdav.servlet.DavFile.lock(DavFile.java:145)
at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.doLock(AbstractWebdavServlet.java:924)
at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.execute(AbstractWebdavServlet.java:389)
at org.cryptomator.frontend.webdav.servlet.WebDavServlet.execute(WebDavServlet.java:108)
at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.service(AbstractWebdavServlet.java:305)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:860)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
at org.cryptomator.frontend.webdav.servlet.MacChunkedPutCompatibilityFilter.doFilterHttp(MacChunkedPutCompatibilityFilter.java:58)
at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at org.cryptomator.frontend.webdav.servlet.AcceptRangeFilter.doFilterHttp(AcceptRangeFilter.java:38)
at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at org.cryptomator.frontend.webdav.servlet.MkcolComplianceFilter.doFilterHttp(MkcolComplianceFilter.java:47)
at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at org.cryptomator.frontend.webdav.servlet.PostRequestBlockingFilter.doFilterHttp(PostRequestBlockingFilter.java:46)
at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at org.cryptomator.frontend.webdav.servlet.UnicodeResourcePathNormalizationFilter.doFilterHttp(UnicodeResourcePathNormalizationFilter.java:70)
at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at org.cryptomator.frontend.webdav.servlet.LoggingFilter.doFilterHttp(LoggingFilter.java:44)
at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:530)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:382)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.nio.file.NoSuchFileException: D:\Virtual Drive\Dokumente\d\PB\B53THK4NT3EI4QYWYYI57J5RXJALLX\HLPFCIK2JIAXD56K57MYZRACI2DJNREQNVCQMP64
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsFileSystemProvider.newFileChannel(WindowsFileSystemProvider.java:115)
at org.cryptomator.cryptofs.OpenCryptoFileFactoryModule.lambda$provideFileChannel$0(OpenCryptoFileFactoryModule.java:24)
at org.cryptomator.cryptofs.UncheckedThrows$2.from(UncheckedThrows.java:58)
at org.cryptomator.cryptofs.OpenCryptoFileFactoryModule.provideFileChannel(OpenCryptoFileFactoryModule.java:24)
at org.cryptomator.cryptofs.OpenCryptoFileFactoryModule_ProvideFileChannelFactory.get(OpenCryptoFileFactoryModule_ProvideFileChannelFactory.java:34)
at org.cryptomator.cryptofs.OpenCryptoFileFactoryModule_ProvideFileChannelFactory.get(OpenCryptoFileFactoryModule_ProvideFileChannelFactory.java:10)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at org.cryptomator.cryptofs.OpenCryptoFile_Factory.get(OpenCryptoFile_Factory.java:72)
at org.cryptomator.cryptofs.OpenCryptoFile_Factory.get(OpenCryptoFile_Factory.java:11)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at org.cryptomator.cryptofs.DaggerCryptoFileSystemProviderComponent$CryptoFileSystemComponentImpl$OpenCryptoFileComponentImpl.openCryptoFile(DaggerCryptoFileSystemProviderComponent.java:380)
at org.cryptomator.cryptofs.OpenCryptoFiles.create(OpenCryptoFiles.java:58)
at org.cryptomator.cryptofs.OpenCryptoFiles.lambda$get$0(OpenCryptoFiles.java:38)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
at org.cryptomator.cryptofs.OpenCryptoFiles.lambda$get$1(OpenCryptoFiles.java:38)
at org.cryptomator.cryptofs.UncheckedThrows$1.from(UncheckedThrows.java:38)
at org.cryptomator.cryptofs.OpenCryptoFiles.get(OpenCryptoFiles.java:37)
at org.cryptomator.cryptofs.CryptoFileSystemImpl.newFileChannel(CryptoFileSystemImpl.java:343)
at org.cryptomator.cryptofs.CryptoFileSystemProvider.newFileChannel(CryptoFileSystemProvider.java:301)
at org.cryptomator.cryptofs.CryptoFileSystemProvider.newByteChannel(CryptoFileSystemProvider.java:306)
at java.nio.file.Files.newByteChannel(Files.java:361)
at java.nio.file.Files.newByteChannel(Files.java:407)
at org.cryptomator.frontend.webdav.servlet.DavFolder.addMemberFile(DavFolder.java:93)
… 53 common frames omitted
12:54:53.221 [pool-4-thread-3] INFO o.c.ui.controllers.WelcomeController - Current version: 1.3.4, lastest version: 1.3.4

With further anaylsis, I have now found 2 suspicious lines in the logfile (line 23, 24):

line 23:
12:17:19.940 [Server thread 006] WARN org.eclipse.jetty.server.HttpChannel - /LeSEy8EGQG5i/Dokumente/FINANZEN/QUICKEN/QDATA.QDF

line 24
java.io.UncheckedIOException: java.nio.file.NoSuchFileException: D:\Virtual Drive\Dokumente\d\PB\B53THK4NT3EI4QYWYYI57J5RXJALLX\HLPFCIK2JIAXD56K57MYZRACI2DJNREQNVCQMP64

In line 23, the Quicken file is requested to be opened.

In line 24, Cryptomator seems to take the path, encrypt it and search for the encrypted file name. However, this file (and the whole path) does not exist. It seems that the encryption is wrong.

Any ideas what’s wrong here and how to address this topic??

I noticed that the path /FINANZEN/QUICKEN/QDATA.QDF is capitalized. Is that actually true? It’s really important that it’s correct because a different case in the cleartext name will result in a completely different ciphertext name.

If my assumption is right, Quicken probably just assumes that it’s okay to capitalize everything even though it’s incorrect. Not sure how to resolve this because that would be an error in Quicken. One workaround would be to actually rename your files and folders and capitalize the names that Quicken is accessing.

But now I’m just making wild guesses because I’m not even certain that the capitalization is actually the issue.

You are completely right:
After publishing the post and exploring the path issue again, I have also recognized that the path requested by Quicken is completely capitalized while the path on the vault was having a mixture of upper and lower case letters.

Solution:
I just tried and moved the Quicken file to a path were the file name and the whole path is capitalized. Now, it is working perfectly!

This is really crazy behaviour of the Quicken application. I am just wondering how this works with regular file shares. Maybe, there is some feedback mechanism between the file share and Quicken. I guess that Quicken will change the capitalization after getting errors. This is probably also the case with Cryptomator and leads to the behaviour that it works after 1-2 minutes of failed attemps. Maybe, the communication between Cryptomator and Quicken takes longer than for normal file shares.

Thank You very much for the support. I am really very happy to find this solution!

Best regards

Markus

1 Like