Corrupted files after copying into a safe

Hi guys, I started using Cryptomator and face a problem which makes the program useless, but I would like to use it.

First I realized that the folder size in the safe was always smaller than the original (e.g. 12GB in the safe instead of 20GB original). But the Mac Finder showed all files in the folder. It turned out that many files were corrupted, for example videos played only a part, then they stopped.

So I started to copy files with TeraCopy and this showed me that especially bigger files (usually more than 2GB) are corrupted in the folder inside the safe. They couldn’t transferred completely. As well as it happens that some files have in the interpretation of TeraCopy a valid checksum (SHA-1), but different from the original. This videos are playing in a quick check, but obviously have an issue somewhere.

We talk mainly about actual MP4 files (H.264 + H.265), and it happens without a rule. If I copy the file again, it can work that I have the same checksum in the safe and on the original file. Some files on the first try, some needs to be copied 5 times until it’s ok. This is a really annoying and time consuming process. As I want to use the Cryptomator safes as backup, it would be nice not to store corrupted files.

Does anybody has an idea from where it comes and how I can avoid this?

I’m using an iMac 5K 27" 2017 with 3.8 GHz Quad-Core Intel Core i5 and 64GB 2400 MHz DDR4 RAM. The machine runs on actual macOS BigSur 11.5.2. The files are unencrypted on an USB-C connected external hard drive (WD My Book Duo 20TB, used as RAID 1 system, so 10TB available), and I copy them into a safe on the same drive. Cryptomator is used in the actual macOS version 1.5.15.

Hi. Which volume type are you using? Fuse? WebDAV?
Are there WARN or ERROR Messages in the log file?

Standard settings, WebDAV with standard port.

I checked all files and found one error but many warnings. Mostly time out and CloseExceptions.

Summary

20:39:07.820 [webdav-099] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/2021%20Videos%20Januar%20bis%20Ma%CC%88rz%20unbearbeitet/C0745.MP4 java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30010/30000 ms
21:22:56.562 [webdav-099] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/2021%20Videos%20Januar%20bis%20Ma%CC%88rz%20unbearbeitet/C0743.MP4 java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
22:08:49.654 [webdav-629] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/2021%20Videos%20Januar%20bis%20Ma%CC%88rz%20unbearbeitet/C0740.MP4 java.nio.channels.AsynchronousCloseException
22:12:39.840 [webdav-629] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/2021%20Videos%20Januar%20bis%20Ma%CC%88rz%20unbearbeitet/C0769.MP4 java.nio.channels.ClosedChannelException
22:19:39.632 [webdav-694] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/2021%20Videos%20Januar%20bis%20Ma%CC%88rz%20unbearbeitet/C0738.MP4 java.nio.channels.ClosedChannelException
22:25:59.246 [webdav-731] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/2021%20Videos%20Januar%20bis%20Ma%CC%88rz%20unbearbeitet/C0763.MP4 java.nio.channels.AsynchronousCloseException

22:54:42.881 [webdav-173] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/2021%20Videos%20Januar%20bis%20M%C3%A4rz%20unbearbeitet/C0745.MP4 java.nio.channels.ClosedChannelException
23:07:51.001 [webdav-178] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/2021%20Videos%20Januar%20bis%20M%C3%A4rz%20unbearbeitet/C0740.MP4 java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30005/30000 ms
23:57:09.302 [webdav-260] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/2021%20Videos%20Januar%20bis%20M%C3%A4rz%20unbearbeitet/C0748.MP4 java.nio.channels.AsynchronousCloseException

02:11:40.672 [webdav-1836] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/Jcrazy/mpd-hd0_35.wmv java.nio.channels.AsynchronousCloseException
02:14:05.894 [webdav-1836] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/Jcrazy/DSC24402.mp4 java.nio.channels.AsynchronousCloseException
03:19:36.495 [webdav-2137] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/AT/IMG_11023.mp4 java.nio.channels.AsynchronousCloseException
04:19:01.967 [webdav-2344] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/mks/Koch.mp4 java.nio.channels.AsynchronousCloseException
04:23:28.802 [webdav-2409] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/mks/Boone_pp.mp4 java.nio.channels.AsynchronousCloseException
12:06:41.340 [webdav-2675] WARN org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/2021%20Videos%20Januar%20bis%20M%C3%A4rz%20unbearbeitet/C0740.MP4 java.nio.channels.ClosedChannelException
12:37:21.533 [webdav-2718] WARN o.c.c.attr.CryptoBasicFileAttributes - Unable to calculate cleartext file size for /Volumes/WD20TB/_Verwaltung/CM_cache/DLGnochSortieren/d/RI/4EDRXT6WHPGJMAPRMKSOI35PKHPIXZ/RlGA7tK8jgqE2dKf9N3jhEUU0eRiACcQuw==.c9r. Ciphertext size (including header): 0

15:07:17.409 [JavaFX Application Thread] ERROR o.c.u.a.ChooseExistingVaultController - Failed to open existing vault.
java.nio.file.NoSuchFileException: /Volumes/WD20TB/_Verwaltung/CM_cache/DLGnochSortieren: Not a vault directory
at org.cryptomator.common.vaults.VaultListManager.add(VaultListManager.java:57)
at org.cryptomator.ui.addvaultwizard.ChooseExistingVaultController.chooseFileAndNext(ChooseExistingVaultController.java:81)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.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.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
at jdk.internal.reflect.GeneratedMethodAccessor38.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.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273)
at com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1859)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1729)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
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.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Node.fireEvent(Node.java:8889)
at javafx.scene.control.Button.fire(Button.java:203)
at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:208)
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.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.mac.MacView.notifyMouse(MacView.java:127)

Welcome to the Cryptomator Community :slightly_smiling_face:,

mhm, such IOErrors should actually be back propagated to the file browser, but it seems like they are logged and afterwards swalloed.

@CryptoFace If you provide us a full log file (e.g. via a private message), I can take a closer look. At best with a new test vault and only a few, big files.

By the way, if you don’t use TeraCopy, does the error still appear?

Thank you very much for welcoming :blush:

I’m maybe blind, but I couldn’t find any button for sending a message. Neither in my mailbox nor in your profile. But it’s ok to post it here I think.

I took the only file with an error, all other files (10 in total) have warnings and / or infos only.

15:06:00.656 [main] INFO  org.cryptomator.launcher.Cryptomator - Starting Cryptomator 1.5.15 on Mac OS X 10.16 (x86_64)
15:06:01.626 [JavaFX Application Thread] INFO  o.c.ui.launcher.FxApplicationStarter - JavaFX Runtime started.
15:06:50.232 [JavaFX Application Thread] INFO  o.cryptomator.ui.fxapp.UpdateChecker - Current version: 1.5.15, lastest version: 1.5.15
15:07:05.954 [App Scheduled Executor 01] INFO  o.c.common.settings.SettingsProvider - Settings saved to /Users/xxxxxx/Library/Application Support/Cryptomator/settings.json
15:07:17.409 [JavaFX Application Thread] ERROR o.c.u.a.ChooseExistingVaultController - Failed to open existing vault.
java.nio.file.NoSuchFileException: /Volumes/WD20TB/_Verwaltung/CM_cache/DLGnochSortieren: Not a vault directory
	at org.cryptomator.common.vaults.VaultListManager.add(VaultListManager.java:57)
	at org.cryptomator.ui.addvaultwizard.ChooseExistingVaultController.chooseFileAndNext(ChooseExistingVaultController.java:81)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.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.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
	at jdk.internal.reflect.GeneratedMethodAccessor38.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.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273)
	at com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
	at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1859)
	at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1729)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	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.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Node.fireEvent(Node.java:8889)
	at javafx.scene.control.Button.fire(Button.java:203)
	at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:208)
	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.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.mac.MacView.notifyMouse(MacView.java:127)
15:09:41.079 [App Background Thread 004] INFO  o.c.u.a.CreateNewVaultPasswordController - Created vault at /Volumes/WD20TB/_Verwaltung/CM_cache/DLGnochSortieren
15:09:42.275 [App Scheduled Executor 01] INFO  o.c.common.settings.SettingsProvider - Settings saved to /Users/xxxxxx/Library/Application Support/Cryptomator/settings.json
15:09:44.046 [JavaFX Application Thread] INFO  o.c.u.r.RecoveryKeyDisplayController - Recovery key copied to clipboard.
15:10:12.897 [App Background Thread 005] INFO  org.cryptomator.common.vaults.Vault - Storing file name length limit of 220
15:10:13.180 [App Background Thread 005] INFO  o.c.frontend.webdav.WebDavServer - Binding server socket to localhost:4xxx7
15:10:13.188 [App Background Thread 005] INFO  o.e.jetty.server.AbstractConnector - Started ServerConnector@4fa9dc33{HTTP/1.1, (http/1.1)}{localhost:4xxx7}
15:10:13.190 [App Background Thread 005] INFO  org.eclipse.jetty.server.Server - jetty-10.0.1; built: 2021-02-19T18:44:52.951Z; git: d0bfd9145ddac13b73xxxxxxxxfcbf4a48132397; jvm 16+36
15:10:13.212 [App Background Thread 005] INFO  o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@15914423{/,null,AVAILABLE}
15:10:13.221 [App Background Thread 005] INFO  org.eclipse.jetty.server.Server - Started Server@2ac87cc1{STARTING}[10.0.1,sto=0] @253151ms
15:10:13.221 [App Background Thread 005] INFO  o.c.frontend.webdav.WebDavServer - WebDavServer started.
15:10:13.245 [App Background Thread 005] INFO  o.e.j.s.s.DefaultSessionIdManager - Session workerName=node0
15:10:13.248 [App Background Thread 005] INFO  o.a.j.w.server.AbstractWebdavServlet - authenticate-header = Basic realm="Jackrabbit Webdav Server"
15:10:13.248 [App Background Thread 005] INFO  o.a.j.w.server.AbstractWebdavServlet - csrf-protection = null
15:10:13.248 [App Background Thread 005] INFO  o.a.j.w.server.AbstractWebdavServlet - createAbsoluteURI = true
15:10:13.248 [App Background Thread 005] INFO  o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@5648f151{/wg-qe5aTTcgM/DLGnochSortieren,null,AVAILABLE}
15:10:13.249 [App Background Thread 005] INFO  o.c.f.w.s.WebDavServletController - WebDavServlet started: /wg-qe5aTTcgM/DLGnochSortieren
15:10:13.667 [App Background Thread 005] INFO  o.c.f.w.s.WebDavServletController - Mounting http://localhost:4xxx7/wg-qe5aTTcgM/DLGnochSortieren using org.cryptomator.frontend.webdav.mount.MacAppleScriptMounter
15:10:13.899 [App Scheduled Executor 02] INFO  o.c.common.settings.SettingsProvider - Settings saved to /Users/xxxxxx/Library/Application Support/Cryptomator/settings.json
15:10:14.032 [JavaFX Application Thread] INFO  o.c.ui.unlock.UnlockWorkflow - Unlock of 'DLGnochSortieren' succeeded.
15:10:18.158 [App Scheduled Executor 01] INFO  o.c.common.settings.SettingsProvider - Settings saved to /Users/xxxxxx/Library/Application Support/Cryptomator/settings.json
17:29:32.209 [webdav-905] WARN  org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/AH/Art_Unknown_1080p.mp4 java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30001/30000 ms
18:00:56.682 [webdav-1216] WARN  org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/AT/Flex%20-%20Trainer02.mp4 java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30005/30000 ms
18:16:46.780 [webdav-1358] WARN  org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/AT/Liz2407.mp4 java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30002/30000 ms
19:10:24.383 [webdav-1564] WARN  org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/AT/Flex%20-%20Trainer08.mp4 java.nio.channels.AsynchronousCloseException
19:16:09.453 [App Background Thread 006] INFO  o.e.j.server.handler.ContextHandler - Stopped o.e.j.s.ServletContextHandler@5648f151{/wg-qe5aTTcgM/DLGnochSortieren,null,STOPPED}
19:16:09.454 [App Background Thread 006] INFO  o.c.f.w.s.WebDavServletController - WebDavServlet stopped: /wg-qe5aTTcgM/DLGnochSortieren
19:16:09.454 [App Background Thread 006] INFO  org.cryptomator.common.vaults.Vault - Unmounted vault 'DLGnochSortieren'
19:16:09.456 [JavaFX Application Thread] INFO  org.cryptomator.ui.lock.LockWorkflow - Lock of DLGnochSortieren succeeded.
19:16:13.264 [main] INFO  org.cryptomator.launcher.Cryptomator - UI shut down

I started to copy everything with the finder. Just after I realized something went wrong with the files, I decided for TeraCopy, simply for the reason to compare the checksums automatically.

If I create a new vault, same behavior. The file itself also has no influence on the effect. As some files are correct after the first try, some are correct after I delete them in the vault and copy them a second time, some need to be deleted and copied again several times. In the end of the day every file arrives correct after a random amount of tries to copy them.

The only thing which seems pretty sure, that it happens to large files only. Since several hours it’s running with pictures and documents, already 480’000 files (437GB) finished without a single error. This task runs probably until tomorrow, then I’ll see the total result.

As nobody of you knows this problem, is it possible in theory that other background processes can cause this behavior? If yes, on what kind of process I should have a look?

If the big files are bigger than 4gb, then WebDAV should throw errors because of its file size limit.
Im not sure but this should also apply to WebDAV on mac

I have many files >4GiB, the biggest file which I copied already successful has more than 52GB. Some videos even with 150 or 200MB face also the problem. The only stuff which runs without trouble are pictures and documents.

By the way the new vault from yesterday finished. Almost 700’000 files, >186’000 failed, means a different checksum. Seems like videos only in a quick check. The rest is fine. I started now to copy the failed again.

Now the more than 186’000 corrupted files are reduced to 863 after a second run. I checked these 863 – 12 pictures and the rest videos only. All types, MP4, WMV, AVI, MKV.

The logged error should not be relevant. It states that at the logged location not a valid vault could be found, but in the next log line you created one.

The actual interesting part are the warnings, e.g.:

17:29:32.209 [webdav-905] WARN  org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/AH/Art_Unknown_1080p.mp4 java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30001/30000 ms
18:00:56.682 [webdav-1216] WARN  org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/AT/Flex%20-%20Trainer02.mp4 java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30005/30000 ms
18:16:46.780 [webdav-1358] WARN  org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/AT/Liz2407.mp4 java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30002/30000 ms
19:10:24.383 [webdav-1564] WARN  org.eclipse.jetty.server.HttpChannel - handleException /wg-qe5aTTcgM/DLGnochSortieren/AT/Flex%20-%20Trainer08.mp4 java.nio.channels.AsynchronousCloseException

I seached a little bit about the TimeoutExceptions. Those are thrown, when a HTTP connection is held open, but not used (in our context due to the used protocol local http connections are used), meaning you open it for writing but don’t start the actual writing. Later on the same, but closed connection it is attempted to write again. Which is an error, but as mentioned before just swallowed.

Also apparently the writing takes a lot of time, the timestamps between those log messages are at least 15min. Did you just copied those files are a whole bunch?

References:

I still don’t have a solution for this. I understand clearly what is a time-out, but I have no idea how it’s caused. The two links you posted also explain what it is, but not what is the reason for, or how I can avoid time-outs.

The only thing what I understand is, that a time-out is usually caused by the server, which is in my understanding in this case the vault. But how this can happen?

I connected meanwhile with Thunderbolt 3 instead of USB, no change. Then I took the same source folder on the USB-connected disk, but used a new vault on the Mac FusionDrive as target. No change. I also tried the same process with a new vault and the 1.6.0 beta 1, no change. If I copy them standard from disk to disk, not into a vault, then there is no issue. All files are fine.

Ok, after a lot of testing I can say the time-out is the problem. I just have no idea from where it comes. Does anyone here have an idea?

Doing something with the vault causes regular time-outs within this connection, no difference version 1.5.15 or 1.6.0 beta 1. These time-outs are responsible for corrupted files, calculating a wrong checksum on a correct file and that files sometimes can’t be written.

The time-outs I have only while working with Cryptomator vaults. Not with normal file handling, as well as it doesn’t appear with another encryption program.

Any solution to this? I’m having the same problem when transferring files from my computer (Windows 10) to a Cryptomator vault on a thumbdrive. It happens seldom and doesn’t seem to happen with specific files.

The only workaround for me was to verify the checksum from every single file… and copy again and again, until it matches finally.