Can't open or copy a specific file anymore

Hello,

I have a problem with only one file which is 4.5 GB large. This file was created five days ago. I tried to copy or open this video file in Cryptomator 1.5.2 yesterday and 1.5.3 today. No difference.

I use Windows 10, Dokany (file is too big for WebDav) and the HDD is external. I can move the file within the HDD but can’t copy or open it.

Today’s log is without warning and error.

I copy and paste the file and can see the Windows copy process bar. In the end (~ 96%) the copy process starts from the beginning. Then I got a dialog that I need admin privilegs (“Sie müssen Administratorberechtigungen angeben, um diese Datei zu kopieren”). I submit this and got another error dialog about path is not available.

2

Log from yesterday with 1.5.2:

21:23:44.437 [main] INFO  org.cryptomator.launcher.Cryptomator - Starting Cryptomator 1.5.2 on Windows 10 10.0 (amd64)
21:46:25.313 [JavaFX Application Thread] INFO  o.c.ui.launcher.FxApplicationStarter - JavaFX Runtime started.
21:46:25.325 [JavaFX Application Thread] INFO  org.cryptomator.jni.FunctionsLoader - loaded WinFunctions.dll
21:46:31.462 [JavaFX Application Thread] INFO  o.cryptomator.ui.fxapp.UpdateChecker - Current version: 1.5.2, lastest version: 1.5.3
21:46:33.270 [App Background Thread 004] INFO  com.dokany.java.DokanyDriver - Dokany version: 130
21:46:33.270 [App Background Thread 004] INFO  com.dokany.java.DokanyDriver - Dokany driver version: 400
21:46:36.282 [JavaFX Application Thread] INFO  o.c.ui.unlock.UnlockController - Unlock of 'Privat' succeeded.
21:46:58.743 [App Background Thread 006] INFO  com.dokany.java.DokanyDriver - Dokany version: 130
21:46:58.744 [App Background Thread 006] INFO  com.dokany.java.DokanyDriver - Dokany driver version: 400
21:47:01.745 [JavaFX Application Thread] INFO  o.c.ui.unlock.UnlockController - Unlock of 'X' succeeded.
21:47:16.040 [Thread-2888] WARN  c.dokany.java.DokanyOperationsProxy - getFileInformation(): Uncaught exception. Returning generic failure code.
java.lang.UnsupportedOperationException: Unsupported file attribute type: interface java.nio.file.attribute.DosFileAttributes
	at org.cryptomator.cryptofs.attr.AttributeProvider.readAttributes(AttributeProvider.java:58)
	at org.cryptomator.cryptofs.CryptoFileSystemImpl.readAttributes(CryptoFileSystemImpl.java:239)
	at org.cryptomator.cryptofs.CryptoFileSystemProvider.readAttributes(CryptoFileSystemProvider.java:424)
	at java.base/java.nio.file.Files.readAttributes(Unknown Source)
	at org.cryptomator.frontend.dokany.ReadWriteAdapter.getFileInformation(ReadWriteAdapter.java:486)
	at com.dokany.java.DokanyOperationsProxy$GetFileInformationProxy.callback(DokanyOperationsProxy.java:125)
	at jdk.internal.reflect.GeneratedMethodAccessor36.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback(CallbackReference.java:520)
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.callback(CallbackReference.java:551)

After activating debug mode I have a lot more information:

01:36:04.493 [Thread-40590] TRACE o.c.frontend.dokany.OpenFile - Reading 4667695104-4667699200 (4667211776-4668260352)
01:36:04.493 [Thread-40590] TRACE o.c.frontend.dokany.OpenFile - Reading 4667699200-4667703296 (4667211776-4668260352)
01:36:04.494 [Thread-40590] DEBUG o.c.frontend.dokany.ReadWriteAdapter - (808) readFile(): IO error while reading file /C/Aufn. 03-25-20.trec.
01:36:04.494 [Thread-40590] DEBUG o.c.frontend.dokany.ReadWriteAdapter - Error is:
java.io.IOException: org.cryptomator.cryptolib.api.AuthenticationFailedException: Authentication of chunk 142447 failed.
	at org.cryptomator.cryptofs.fh.ChunkCache.get(ChunkCache.java:67)
	at org.cryptomator.cryptofs.ch.CleartextFileChannel.readLocked(CleartextFileChannel.java:109)
	at org.cryptomator.cryptofs.ch.AbstractFileChannel.read(AbstractFileChannel.java:155)
	at org.cryptomator.cryptofs.ch.AbstractFileChannel.read(AbstractFileChannel.java:139)
	at org.cryptomator.frontend.dokany.OpenFile.readNext(OpenFile.java:95)
	at org.cryptomator.frontend.dokany.OpenFile.read(OpenFile.java:49)
	at org.cryptomator.frontend.dokany.ReadWriteAdapter.readFile(ReadWriteAdapter.java:368)
	at com.dokany.java.DokanyOperationsProxy$ReadFileProxy.callback(DokanyOperationsProxy.java:86)
	at jdk.internal.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback(CallbackReference.java:520)
	at com.sun.jna.CallbackReference$DefaultCallbackProxy.callback(CallbackReference.java:551)
Caused by: org.cryptomator.cryptolib.api.AuthenticationFailedException: Authentication of chunk 142447 failed.
	at org.cryptomator.cryptolib.v1.FileContentCryptorImpl.decryptChunk(FileContentCryptorImpl.java:71)
	at org.cryptomator.cryptofs.fh.ChunkLoader.load(ChunkLoader.java:38)
	at org.cryptomator.cryptofs.fh.ChunkCache.loadChunk(ChunkCache.java:40)
	at com.google.common.cache.CacheLoader$FunctionToCacheLoader.load(CacheLoader.java:165)
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
	at com.google.common.cache.LocalCache.get(LocalCache.java:3951)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3974)
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4958)
	at org.cryptomator.cryptofs.fh.ChunkCache.get(ChunkCache.java:57)
	... 12 common frames omitted
01:36:04.495 [Thread-40591] TRACE o.c.frontend.dokany.ReadWriteAdapter - zwCreateFile() is called for /C/Aufn. 03-25-20.trec with the following parameters:
	CreateDisposition -- OPEN_EXISTING
	createOptions -- EnumIntegerSet(elements=[FILE_SEQUENTIAL_ONLY, FILE_SYNCHRONOUS_IO_NONALERT])
	accessMasks -- EnumIntegerSet(elements=[SYNCHRONIZE])
	fileAccessMasks -- EnumIntegerSet(elements=[])
	fileAttributes -- EnumIntegerSet(elements=[]).
01:36:04.495 [Thread-40591] TRACE o.c.frontend.dokany.ReadWriteAdapter - Try to open /C/Aufn. 03-25-20.trec as File.
01:36:04.495 [Thread-40591] TRACE o.c.cryptofs.fh.FileHeaderHolder - Reading file header from Z:\OneDrive\X\d\XT\2V7GAGVO7CTOHNLP5DLBHRHHBNSLO7\nzZgvpYFEAiY03KqvFZOS14N_SeyVVIao8XhngJw4AlJGKo=.c9r
01:36:04.495 [Thread-40591] TRACE o.c.frontend.dokany.ReadWriteAdapter - (809) /C/Aufn. 03-25-20.trec opened successful with handle 809.
01:36:04.495 [Thread-40592] TRACE o.c.frontend.dokany.ReadWriteAdapter - (809) getFileInformation() is called for /C/Aufn. 03-25-20.trec.
01:36:04.495 [Thread-40592] TRACE o.c.frontend.dokany.ReadWriteAdapter - (809) Filesize of /C/Aufn. 03-25-20.trec is 4828093658.
01:36:04.496 [Thread-40592] TRACE o.c.frontend.dokany.ReadWriteAdapter - (809) File Information successful read from /C/Aufn. 03-25-20.trec.
01:36:04.496 [Thread-40593] TRACE o.c.frontend.dokany.ReadWriteAdapter - (809) getFileInformation() is called for /C/Aufn. 03-25-20.trec.
01:36:04.496 [Thread-40593] TRACE o.c.frontend.dokany.ReadWriteAdapter - (809) Filesize of /C/Aufn. 03-25-20.trec is 4828093658.
01:36:04.496 [Thread-40593] TRACE o.c.frontend.dokany.ReadWriteAdapter - (809) File Information successful read from /C/Aufn. 03-25-20.trec.
01:36:04.497 [Thread-40595] TRACE o.c.frontend.dokany.ReadWriteAdapter - (809) cleanup() is called for /C/Aufn. 03-25-20.trec.
01:36:04.498 [Thread-40596] TRACE o.c.frontend.dokany.ReadWriteAdapter - (808) cleanup() is called for /C/Aufn. 03-25-20.trec.
01:36:04.498 [Thread-40597] TRACE o.c.frontend.dokany.ReadWriteAdapter - (809) closeFile() is called for /C/Aufn. 03-25-20.trec.
01:36:04.498 [Thread-40598] TRACE o.c.frontend.dokany.ReadWriteAdapter - (808) closeFile() is called for /C/Aufn. 03-25-20.trec.
01:36:04.905 [Thread-40599] TRACE o.c.frontend.dokany.ReadWriteAdapter - zwCreateFile() is called for / with the following parameters:
	CreateDisposition -- OPEN_EXISTING
	createOptions -- EnumIntegerSet(elements=[FILE_SYNCHRONOUS_IO_NONALERT])
	accessMasks -- EnumIntegerSet(elements=[SYNCHRONIZE])
	fileAccessMasks -- EnumIntegerSet(elements=[])
	fileAttributes -- EnumIntegerSet(elements=[]).
01:36:04.905 [Thread-40599] TRACE o.c.frontend.dokany.ReadWriteAdapter - Try to open / as Directory.
01:36:04.905 [Thread-40599] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) / opened successful with handle 810.
01:36:04.906 [Thread-40600] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) getFileInformation() is called for /.
01:36:04.906 [Thread-40600] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) Filesize of / is 8192.
01:36:04.906 [Thread-40600] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) File Information successful read from /.
01:36:04.906 [Thread-40601] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) getFileInformation() is called for /.
01:36:04.906 [Thread-40601] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) Filesize of / is 8192.
01:36:04.906 [Thread-40601] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) File Information successful read from /.
01:36:04.906 [Thread-40602] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) findFiles() is called for /.
01:36:04.907 [Thread-40602] TRACE o.c.c.dir.CryptoDirectoryStream - OPEN 
01:36:04.907 [Thread-40602] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) findFiles(): found file Me
01:36:04.907 [Thread-40602] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) findFiles(): found file C
01:36:04.907 [Thread-40602] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) findFiles(): found file Watch
01:36:04.908 [Thread-40602] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) findFiles(): found file OR
01:36:04.908 [Thread-40602] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) findFiles(): found file People
01:36:04.908 [Thread-40602] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) findFiles(): found file Beweise
01:36:04.908 [Thread-40602] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) findFiles(): found file !Cache
01:36:04.909 [Thread-40602] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) findFiles(): found file P
01:36:04.909 [Thread-40602] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) Successful searched content in /.
01:36:04.909 [Thread-40602] TRACE o.c.c.dir.CryptoDirectoryStream - CLOSE 
01:36:04.909 [Thread-40603] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) cleanup() is called for /.
01:36:04.909 [Thread-40604] TRACE o.c.frontend.dokany.ReadWriteAdapter - (810) closeFile() is called for /.
01:36:04.909 [Thread-40605] TRACE o.c.frontend.dokany.ReadWriteAdapter - zwCreateFile() is called for /C with the following parameters:
	CreateDisposition -- OPEN_EXISTING
	createOptions -- EnumIntegerSet(elements=[FILE_SYNCHRONOUS_IO_NONALERT])
	accessMasks -- EnumIntegerSet(elements=[SYNCHRONIZE])
	fileAccessMasks -- EnumIntegerSet(elements=[])
	fileAttributes -- EnumIntegerSet(elements=[]).

The last lines are repeated 100 times. I tried to copy this file on another laptop with Cryptomator 1.5.0, 1.5.1 and 1.5.3, same error. I reinstalled Cryptomator and Dokany… No difference. Is the file corrupted? Very sad because I have no backup of it because I was right in the middle of creating a backup.

If the file you asking for is named /C/Aufn. 03-25-20.trec, then the answer is yes.

Crypotmator divides each files in smaller chunks and adds to each chunk a verification code (see our docs for more infos). And specifc chunk of this file could not be verified.

You can try to use Sanitizer to partially recover this file.

@infeo: Thanks. Yes, this is the file.

I tried this tool but got this output with error:

C:\Users\XXX\Downloads>java -jar sanitizer-0.16.jar check -vault Z:\OneDrive\X -deep
# Cryptomator vault sanitizer v0.16 #

Vault password:
Scanning vault structure may take some time. Be patient...
Wrote structure to X.structure.txt.
44304 files in vault

Checking the vault may take some time. Be patient...

Check failed: Vault version mismatch. Expected: 6 Actual: 7

I’m sorry, that’s my mistake. The sanitizer tool is yet not migrated to the new vault format.

Unless you have somewhere a backup, the file is lost for the time being.

Is there a release date?

It is on our roadmap, but right now there is no release date.