Lost Folder + Unable to Open Vault

Maybe I posted my issue on the wrong platform, if so please forgive me.

I have described my issue with a lost folder in Github(https://github.com/cryptomator/cryptomator/issues/1475).

And in addition to the issue of the lost folder, now I cannot open my vault using Cryptomator + Google File Stream(GFS) on Windows 10. I have already confirmed that this is not a GFS issue.

Below is the error code for the issue on opening my vault:

java.io.IOException: 파일이 이미 있으므로 만들 수 없습니다
	at java.base/sun.nio.ch.FileDispatcherImpl.read0(Native Method)
	at java.base/sun.nio.ch.FileDispatcherImpl.read(Unknown Source)
	at java.base/sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source)
	at java.base/sun.nio.ch.IOUtil.read(Unknown Source)
	at java.base/sun.nio.ch.FileChannelImpl.read(Unknown Source)
	at java.base/sun.nio.ch.ChannelInputStream.read(Unknown Source)
	at java.base/sun.nio.ch.ChannelInputStream.read(Unknown Source)
	at java.base/sun.nio.ch.ChannelInputStream.read(Unknown Source)
	at java.base/java.nio.file.Files.read(Unknown Source)
	at java.base/java.nio.file.Files.readAllBytes(Unknown Source)
	at org.cryptomator.cryptofs.migration.Migrators.needsMigration(Migrators.java:81)
	at org.cryptomator.common.vaults.VaultListManager.determineVaultState(VaultListManager.java:129)
	at org.cryptomator.common.vaults.VaultListManager.redetermineVaultState(VaultListManager.java:112)
	at org.cryptomator.ui.mainwindow.VaultListController.selectedVaultDidChange(VaultListController.java:65)
	at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:360)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106)
	at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113)
	at javafx.beans.property.ObjectPropertyBase$Listener.invalidated(ObjectPropertyBase.java:234)
	at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:136)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.ReadOnlyObjectPropertyBase.fireValueChangedEvent(ReadOnlyObjectPropertyBase.java:74)
	at javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent(ReadOnlyObjectWrapper.java:102)
	at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113)
	at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147)
	at javafx.scene.control.SelectionModel.setSelectedItem(SelectionModel.java:105)
	at javafx.scene.control.MultipleSelectionModelBase.lambda$new$0(MultipleSelectionModelBase.java:67)
	at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:136)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.ReadOnlyIntegerPropertyBase.fireValueChangedEvent(ReadOnlyIntegerPropertyBase.java:72)
	at javafx.beans.property.ReadOnlyIntegerWrapper.fireValueChangedEvent(ReadOnlyIntegerWrapper.java:102)
	at javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:114)
	at javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:148)
	at javafx.scene.control.SelectionModel.setSelectedIndex(SelectionModel.java:69)
	at javafx.scene.control.MultipleSelectionModelBase.select(MultipleSelectionModelBase.java:412)
	at javafx.scene.control.MultipleSelectionModelBase.clearAndSelect(MultipleSelectionModelBase.java:360)
	at javafx.scene.control.ListView$ListViewBitSetSelectionModel.clearAndSelect(ListView.java:1449)
	at com.sun.javafx.scene.control.behavior.CellBehaviorBase.simpleSelect(CellBehaviorBase.java:282)
	at com.sun.javafx.scene.control.behavior.CellBehaviorBase.doSelect(CellBehaviorBase.java:246)
	at com.sun.javafx.scene.control.behavior.CellBehaviorBase.mousePressed(CellBehaviorBase.java:176)
	at com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
	at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3856)
	at javafx.scene.Scene.processMouseEvent(Scene.java:1851)
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2584)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:409)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:299)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:447)
	at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:446)
	at com.sun.glass.ui.View.handleMouseEvent(View.java:556)
	at com.sun.glass.ui.View.notifyMouse(View.java:942)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
	at java.base/java.lang.Thread.run(Unknown Source)

Please help with both issues.

Edit: Just to clarify, the Android Cryptomator app has no problems opening the said vault. But the issue of the lost folders is a common issue between platforms.

The IOException in Korean letters sais: “The file already exists and cannot be created”

I’m not aware of that cryptomator is writing anything except the log file when just opening a vault.
So, can you please have a look if the log file is written? Are there “WARN” or “ERROR” Messages?
Which dokany version are you using? if not the latest, please update.
Can you open the vault when switching to WebDAV?

Regarding the “lost” folder issue:
If you directly connect to your vault (with cyberduck), is the folder available? If yes, can you delete it? If yes, did is solve the problem?
I always think about “sync” issues when I read something is not working as expected with files-on-demand mechanics.

Thanks for the reply.
To keep it short, I have half-solved the issue at hand.

Concerning the lost folder issue, I have experienced it before, and I had no choice but to abandon the folder(finding the corresponding encrypted directory or file location via Cyberduck and deleting it through the Google Drive interface. This process allowed me to literally “get rid” of the issue itself, albeit leaving the bug/issue. Therefore, I will be closing the corresponding Github issue after leaving a link that points to this post.

To answer your question, yes the folder itself is available with or without Cyberduck. But it was impossible to delete the said folder. Creating a new random directory and moving the problematic folder in and out of it caused some subdirectories of the problematic folder to disappear and re-appear. I was using the most up-to-date versions of any necessary software for the current latest version of Cryptomator. Due to my use of manual deletion through Google Drive, I am not able to try out opening the vault using WebDAV.

Concerning the issue of un-openable vaults, I eventually solved the issue by reverting to an old version of “masterkey.cryptomator”. Any previously generated backup masterkeys displayed the same error as described in my post. So, I tried out a masterkey file that supported version 6 and then tried opening my vault through Cryptomator. This caused the initiation of a migration process(version 6 to 7, my vault was already version 7). After the completion of the migration process, access to my vault was restored. I believe that the corruption of my “masterkey.cryptomator”, caused by unknown reasons, led to this issue.

Thanks for your help.