cryptomator / cryptomator/cryptomator
FUSE-T vault failes to re-mount on macOS Sequoia if mountpoint folder already exists
- Dominant language
- Java
- Stars
- 16.1k
- Forks
- 1.5k
- Avg merge
- 2d 45m
- Merged PRs (30d)
- 1
Description
### Summary
Unlocking a vault configured to mount using FUSE-T on macOS Sequoia fails with error 09TB:8LNC:8MQR if a directory already exists (despite being empty) at the mount path.
### Please agree to the following
- [x] I have searched [existing issues](https://github.com/cryptomator/cryptomator/issues?q=) for duplicates
- [x] I agree to follow this project's [Code of Conduct](https://github.com/cryptomator/cryptomator/blob/develop/.github/CODE_OF_CONDUCT.md)
### What software is involved?
- Operating System: macOS Sequoia 15.7.2 (build 24G325)
- Cryptomator: 1.18.0
- FUSE-T: 1.0.49
### Volume Type
FUSE-T
### Steps to Reproduce
1. Lock the volume.
2. Unlock the volume.
### Expected Behavior
The volume re-mounts.
### Actual Behavior
The volume fails to re-mount, with the error logged below.
### Reproducibility
Always
### Relevant Log Output
```shell
Error Code 09TB:8LNC:8MQR
org.cryptomator.integrations.mount.MountFailedException: org.cryptomator.jfuse.api.FuseMountFailedException: fuse_loop() returned prematurely with non-zero exit code -1
at org.cryptomator.frontend.fuse@5.1.0/org.cryptomator.frontend.fuse.mount.FuseTMountProvider$FuseTMountBuilder.mount(FuseTMountProvider.java:133)
at org.cryptomator.desktop@1.18.0/org.cryptomator.common.mount.Mounter.mount(Mounter.java:172)
at org.cryptomator.desktop@1.18.0/org.cryptomator.common.vaults.Vault.unlock(Vault.java:179)
at org.cryptomator.desktop@1.18.0/org.cryptomator.ui.keyloading.KeyLoadingStrategy.use(KeyLoadingStrategy.java:109)
at org.cryptomator.desktop@1.18.0/org.cryptomator.ui.unlock.UnlockWorkflow.call(UnlockWorkflow.java:82)
at org.cryptomator.desktop@1.18.0/org.cryptomator.ui.unlock.UnlockWorkflow.call(UnlockWorkflow.java:37)
at javafx.graphics@25/javafx.concurrent.Task$TaskCallable.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$Completion.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.cryptomator.jfuse.api.FuseMountFailedException: fuse_loop() returned prematurely with non-zero exit code -1
at org.cryptomator.jfuse.api@0.7.3/org.cryptomator.jfuse.api.Fuse.mount(Fuse.java:130)
at org.cryptomator.frontend.fuse@5.1.0/org.cryptomator.frontend.fuse.mount.FuseTMountProvider$FuseTMountBuilder.mount(FuseTMountProvider.java:130)
... 12 more
```
### Anything else?
Concurrent with the failure to mount the volume, `~/Library/Logs/fuse-t/fuse-t.log` gets appended with:
```
time="2025-11-14T19:25:58-08:00" level=info msg="comm socket: 64"
time="2025-11-14T19:25:58-08:00" level=info msg="montor socket: 66"
time="2025-11-14T19:25:58-08:00" level=info msg="Server version 1.0.49 (70ae0b15a0f0c31681bfa10c133c87886dfcc6e7) running at [::1]:52200"
time="2025-11-14T19:25:58-08:00" level=info msg="Mounting: /Users/USERNAME/Library/Application Support/Cryptomator/mnt/VAULT NAME"
time="2025-11-14T19:25:58-08:00" level=info msg="mount [-o noauto,nostreams -t smbfs //Guest@fuse-t._smb._tcp.local/VAULT%20NAME /Users/USERNAME/Library/Application Support/Cryptomator/mnt/VAULT NAME]"
time="2025-11-14T19:26:28-08:00" level=error msg="exit status 68"
time="2025-11-14T19:26:28-08:00" level=warning msg="receiveRequest error: read unix ->: use of closed network connection"
time="2025-11-14T19:27:10-08:00" level=info msg="comm socket: 65"
time="2025-11-14T19:27:10-08:00" level=info msg="montor socket: 69"
time="2025-11-14T19:27:10-08:00" level=warning msg="Failed to listen: 52200"
time="2025-11-14T19:27:10-08:00" level=info msg="Server version 1.0.49 (70ae0b15a0f0c31681bfa10c133c87886dfcc6e7) running at [::1]:52201"
time="2025-11-14T19:27:10-08:00" level=info msg="Mounting: /Users/USERNAME/Library/Application Support/Cryptomator/mnt/VAULT NAME"
time="2025-11-14T19:27:10-08:00" level=info msg="mount [-o noauto,nostreams -t smbfs //Guest@fuse-t-1._smb._tcp.local/VAULT%20NAME /Users/USERNAME/Library/Application Support/Cryptomator/mnt/VAULT NAME]"
time="2025-11-14T19:27:12-08:00" level=error msg="ioctl: code 1310840"
time="2025-11-14T19:27:12-08:00" level=error msg=Lock
time="2025-11-14T19:27:12-08:00" level=error msg=Lock
time="2025-11-14T19:27:12-08:00" level=error msg=Lock
time="2025-11-14T19:27:12-08:00" level=error msg=Lock
time="2025-11-14T19:27:12-08:00" level=error msg=Lock
time="2025-11-14T19:27:12-08:00" level=error msg=Lock
time="2025-11-14T19:27:12-08:00" level=error msg=Lock
time="2025-11-14T19:27:12-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:15-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:16-08:00" level=error msg=Lock
time="2025-11-14T19:27:21-08:00" level=error msg=Lock
time="2025-11-14T19:27:21-08:00" level=error msg=Lock
time="2025-11-14T19:27:21-08:00" level=error msg=Lock
time="2025-11-14T19:27:21-08:00" level=error msg=Lock
time="2025-11-14T19:27:21-08:00" level=error msg=Lock
time="2025-11-14T19:27:21-08:00" level=error msg=Lock
time="2025-11-14T19:27:21-08:00" level=error msg=Lock
time="2025-11-14T19:27:21-08:00" level=error msg=Lock
time="2025-11-14T19:27:54-08:00" level=error msg="error: connection error: EOF"
time="2025-11-14T19:27:54-08:00" level=info msg="Unmounting: /Users/USERNAME/Library/Application Support/Cryptomator/mnt/VAULT NAME"
time="2025-11-14T19:27:54-08:00" level=info msg="Parent process has died"
time="2025-11-14T19:27:54-08:00" level=info msg="unmount [-f /Users/USERNAME/Library/Application Support/Cryptomator/mnt/VAULT NAME]"
time="2025-11-14T19:27:54-08:00" level=info msg="unmount [-f /Users/USERNAME/Library/Application Support/Cryptomator/mnt/VAULT NAME]"
time="2025-11-14T19:27:54-08:00" level=error msg="exit status 1"
time="2025-11-14T19:27:54-08:00" level=error msg="exit status 1"
```
If I re-attempt to mount the vault, thousands of lines are appended to the log at the rate of more than ten per second, mostly just repeating around 108 – 144 lines ending `msg=Lock` per line ending `msg="sendRequest error: write unix ->: use of closed network connection"`.
I don't yet know enough about SMB to be sure whether it's significant, but in SMB, `ioctl code 1310840`, or `0x140078`, corresponds to [`FSCTL_SRV_REQUEST_RESUME_KEY`](https://learn.microsoft.com/en-us/windows/win32/devnotes/fsctl-srv-request-resume-key).
Before deleting the mountpoint folder, potential workarounds from discussion #3607 which I tried, and which failed, include:
- removing and reinstalling Cryptomator,
- removing and reinstalling FUSE-T,
- explicitly setting volume type to "FUSE-T Experimental" (as opposed to Default),
- explicitly setting the full mount directory path (as opposed automatically),
- removing and re-adding the vault, and
- restarting the Mac.
Additionally, mounting and altering the volume on Cryptomator for Windows, unmounting it, then attempting to mount it again on Cryptomator for Mac, had no effect.
Notably, running a vault health check shows no problems with the vault.
What does work as a one-off workaround, after reverting the mount directory path to automatic, is:
- deleting the (empty) mountpoint folder, `/Users/USERNAME/Library/Application Support/Cryptomator/mnt/VAULT NAME`, then mounting the vault again.
However, to prevent recurrence of the problem, it is necessary to delete the empty mountpoint folder again before each time I mount the vault.
@macos-fuse-t Might this be a bug in FUSE-T, not Cryptomator?
_Originally posted by @deFractal in https://github.com/cryptomator/cryptomator/discussions/3607#discussioncomment-14974819_
Contributor guide
Assessment
This issue has not been assessed yet.