App not starting after updating to v1.6.10

Hi,

I upgraded to the latest version today (before: 1.5.14). Now Cryptomator is not starting anymore.

Before I already had issues with my vault (couldn’t open it). I thought the upgrade might fix it. On the iOS Version Cryptomator is running fine and I can open my vault. My vault is on OneDrive.

Is there any option to reset my Cryptomator settings and add the vault again?

Thanks for your help!

13:35:08.477 [main] INFO  org.cryptomator.launcher.Cryptomator - Starting Cryptomator 1.6.10 on Mac OS X 12.2.1 (x86_64)
13:35:08.506 [main] INFO  org.cryptomator.ipc.Server - Spawning IPC server listening on socket /Users/jonas/Library/Application Support/Cryptomator/ipc.socket
13:35:08.951 [JavaFX Application Thread] INFO  org.cryptomator.launcher.Cryptomator - JavaFX runtime started after 740ms
13:35:09.051 [JavaFX Application Thread] WARN  o.c.common.vaults.VaultListManager - Failed to determine vault state for /Users/jonas/OneDrive/Crypto
java.io.IOException: Unreadable JSON
	at org.cryptomator.cryptolib@2.0.3/org.cryptomator.cryptolib.common.MasterkeyFile.read(MasterkeyFile.java:59)
	at org.cryptomator.cryptolib@2.0.3/org.cryptomator.cryptolib.common.MasterkeyFileAccess.readAllegedVaultVersion(MasterkeyFileAccess.java:68)
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.migration.Migrators.determineVaultVersion(Migrators.java:116)
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.migration.Migrators.needsMigration(Migrators.java:79)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.determineVaultState(VaultListManager.java:143)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.create(VaultListManager.java:98)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
	at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toList(Unknown Source)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.addAll(VaultListManager.java:83)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.<init>(VaultListManager.java:52)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$SwitchingProvider.get(DaggerCryptomatorComponent.java:7615)
	at dagger@2.41/dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$FxApplicationComponentImpl$SwitchingProvider.get(DaggerCryptomatorComponent.java:7078)
	at dagger@2.41/dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$FxApplicationComponentImpl$SwitchingProvider.get(DaggerCryptomatorComponent.java:7065)
	at dagger@2.41/dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$FxApplicationComponentImpl.application(DaggerCryptomatorComponent.java:7037)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.Cryptomator$MainApp.start(Cryptomator.java:138)
	at javafx.graphics@18.0.1/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
	at javafx.graphics@18.0.1/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
	at javafx.graphics@18.0.1/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at javafx.graphics@18.0.1/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
	at javafx.graphics@18.0.1/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
	at com.google.gson@2.9.0/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:225)
	at com.google.gson@2.9.0/com.google.gson.Gson.fromJson(Gson.java:991)
	at com.google.gson@2.9.0/com.google.gson.Gson.fromJson(Gson.java:929)
	at org.cryptomator.cryptolib@2.0.3/org.cryptomator.cryptolib.common.MasterkeyFile.read(MasterkeyFile.java:52)
	... 30 common frames omitted
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
	at com.google.gson@2.9.0/com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
	at com.google.gson@2.9.0/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:214)
	... 33 common frames omitted
13:35:09.096 [JavaFX Application Thread] INFO  org.cryptomator.launcher.Cryptomator - JavaFX application stopped.
13:35:09.103 [main] ERROR org.cryptomator.launcher.Cryptomator - Terminating due to error
java.lang.RuntimeException: Exception in Application start method
	at javafx.graphics@18.0.1/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:901)
	at javafx.graphics@18.0.1/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: org.cryptomator.common.vaults.VaultConfigCache must be set
	at dagger@2.41/dagger.internal.Preconditions.checkBuilderRequirement(Preconditions.java:123)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$VaultComponentBuilder.build(DaggerCryptomatorComponent.java:1480)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.create(VaultListManager.java:110)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
	at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toList(Unknown Source)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.addAll(VaultListManager.java:83)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.<init>(VaultListManager.java:52)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$SwitchingProvider.get(DaggerCryptomatorComponent.java:7615)
	at dagger@2.41/dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$FxApplicationComponentImpl$SwitchingProvider.get(DaggerCryptomatorComponent.java:7078)
	at dagger@2.41/dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$FxApplicationComponentImpl$SwitchingProvider.get(DaggerCryptomatorComponent.java:7065)
	at dagger@2.41/dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$FxApplicationComponentImpl.application(DaggerCryptomatorComponent.java:7037)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.Cryptomator$MainApp.start(Cryptomator.java:138)
	at javafx.graphics@18.0.1/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
	at javafx.graphics@18.0.1/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
	at javafx.graphics@18.0.1/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at javafx.graphics@18.0.1/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
	at javafx.graphics@18.0.1/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
13:35:09.104 [main] INFO  org.cryptomator.launcher.Cryptomator - Exit 1
1 Like

After vault migration, in your vault directoy (.../OneDrive/Crypto) should at least two files exists:

  • vault.cryptomator
  • masterkey.cryptomator

Reading the log, this does not seem the case. Ensure, that your files are completely synced with the cloud.

Thanks for your response.

vault.cryptomator seems missing. It’s also not synced online.

What confuses me is that Cryptomator (v2 and v1) runs on my phone without any issues.

I attached a screenshot of my Crypto folder.

Is there any way to restore the vault.cryptomator file?

Nope. If you cannot find it, it might not have been created at all.

When I see the timestamps on your masterkey file & backups, are you sure you migrated the vault at all? If so, did you migrated it on a different device?

What do you mean by migrated the vault? I actually only installed the latest Cryptomator version.

On iOS I am accessing my Cryptomator files by accessing the same OneDrive folder.

Ohhh, i see. Sorry, i misread your problem description and assumed something. :see_no_evil: Then forget what i said about the vault.cryptomator. It will exist after your problem at hand is fixed and you migrated the vault to a newer version.

In your vault directory, you see the files ending with .bckup, right? Those are copies of older masterkey.cryptomator versions (e.g., everytime the password is changed, a backup is made). Make a copy of your current masterkey.cryptomator and then rename the most recent backup to masterkey.cryptomator and try to start your application.

App is again crashing (not even starting).

Can it be related to the fact that I have auto-unlock enabled?

Is there any option to completely “reset” / clean install Cryptomator?

Logs:

17:17:17.699 [main] INFO  org.cryptomator.launcher.Cryptomator - Starting Cryptomator 1.6.10 on Mac OS X 12.2.1 (x86_64)
17:17:17.737 [main] INFO  org.cryptomator.ipc.Server - Spawning IPC server listening on socket /Users/jonas/Library/Application Support/Cryptomator/ipc.socket
17:17:18.431 [JavaFX Application Thread] INFO  org.cryptomator.launcher.Cryptomator - JavaFX runtime started after 1114ms
17:17:19.941 [JavaFX Application Thread] WARN  o.c.common.vaults.VaultListManager - Failed to determine vault state for /Users/jonas/OneDrive/Crypto
java.io.IOException: Unreadable JSON
	at org.cryptomator.cryptolib@2.0.3/org.cryptomator.cryptolib.common.MasterkeyFile.read(MasterkeyFile.java:59)
	at org.cryptomator.cryptolib@2.0.3/org.cryptomator.cryptolib.common.MasterkeyFileAccess.readAllegedVaultVersion(MasterkeyFileAccess.java:68)
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.migration.Migrators.determineVaultVersion(Migrators.java:116)
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.migration.Migrators.needsMigration(Migrators.java:79)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.determineVaultState(VaultListManager.java:143)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.create(VaultListManager.java:98)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
	at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toList(Unknown Source)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.addAll(VaultListManager.java:83)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.<init>(VaultListManager.java:52)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$SwitchingProvider.get(DaggerCryptomatorComponent.java:7615)
	at dagger@2.41/dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$FxApplicationComponentImpl$SwitchingProvider.get(DaggerCryptomatorComponent.java:7078)
	at dagger@2.41/dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$FxApplicationComponentImpl$SwitchingProvider.get(DaggerCryptomatorComponent.java:7065)
	at dagger@2.41/dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$FxApplicationComponentImpl.application(DaggerCryptomatorComponent.java:7037)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.Cryptomator$MainApp.start(Cryptomator.java:138)
	at javafx.graphics@18.0.1/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
	at javafx.graphics@18.0.1/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
	at javafx.graphics@18.0.1/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at javafx.graphics@18.0.1/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
	at javafx.graphics@18.0.1/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
	at com.google.gson@2.9.0/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:225)
	at com.google.gson@2.9.0/com.google.gson.Gson.fromJson(Gson.java:991)
	at com.google.gson@2.9.0/com.google.gson.Gson.fromJson(Gson.java:929)
	at org.cryptomator.cryptolib@2.0.3/org.cryptomator.cryptolib.common.MasterkeyFile.read(MasterkeyFile.java:52)
	... 30 common frames omitted
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
	at com.google.gson@2.9.0/com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
	at com.google.gson@2.9.0/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:214)
	... 33 common frames omitted
17:17:19.942 [JavaFX Application Thread] INFO  org.cryptomator.launcher.Cryptomator - JavaFX application stopped.
17:17:19.950 [main] ERROR org.cryptomator.launcher.Cryptomator - Terminating due to error
java.lang.RuntimeException: Exception in Application start method
	at javafx.graphics@18.0.1/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:901)
	at javafx.graphics@18.0.1/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: org.cryptomator.common.vaults.VaultConfigCache must be set
	at dagger@2.41/dagger.internal.Preconditions.checkBuilderRequirement(Preconditions.java:123)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$VaultComponentBuilder.build(DaggerCryptomatorComponent.java:1480)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.create(VaultListManager.java:110)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
	at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.toList(Unknown Source)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.addAll(VaultListManager.java:83)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.<init>(VaultListManager.java:52)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$SwitchingProvider.get(DaggerCryptomatorComponent.java:7615)
	at dagger@2.41/dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$FxApplicationComponentImpl$SwitchingProvider.get(DaggerCryptomatorComponent.java:7078)
	at dagger@2.41/dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$FxApplicationComponentImpl$SwitchingProvider.get(DaggerCryptomatorComponent.java:7065)
	at dagger@2.41/dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.DaggerCryptomatorComponent$FxApplicationComponentImpl.application(DaggerCryptomatorComponent.java:7037)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.launcher.Cryptomator$MainApp.start(Cryptomator.java:138)
	at javafx.graphics@18.0.1/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
	at javafx.graphics@18.0.1/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
	at javafx.graphics@18.0.1/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at javafx.graphics@18.0.1/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
	at javafx.graphics@18.0.1/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
17:17:19.952 [main] INFO  org.cryptomator.launcher.Cryptomator - Exit 1

Did you tried my suggestion of replacing the masterkey.cryptomator file?

No.

You can delete the file ~/Library/Application Support/Cryptomator/settings.json. All your settings will be lost, but the application will start again. But once you’ll add the faulty vault again as the first vault in the list, you will run into the same problem again. I opened a ticket on our issue tracker and it will be fixed with the next Cryptomator update.

Yes and I also tried it after deleting the settings.

The software get’s stuck on this screen:

09:15:16.616 [main] INFO  org.cryptomator.launcher.Cryptomator - Starting Cryptomator 1.6.10 on Mac OS X 12.2.1 (x86_64)
09:15:16.643 [main] INFO  org.cryptomator.ipc.Server - Spawning IPC server listening on socket /Users/jonas/Library/Application Support/Cryptomator/ipc.socket
09:15:17.152 [JavaFX Application Thread] INFO  org.cryptomator.launcher.Cryptomator - JavaFX runtime started after 848ms
09:15:19.855 [App Scheduled Executor 01] INFO  o.c.common.settings.SettingsProvider - Settings saved to /Users/jonas/Library/Application Support/Cryptomator/settings.json
09:15:34.729 [JavaFX Application Thread] WARN  o.c.common.vaults.VaultListManager - Failed to determine vault state for /Users/jonas/Desktop/Crypto 2
java.io.IOException: Unreadable JSON
	at org.cryptomator.cryptolib@2.0.3/org.cryptomator.cryptolib.common.MasterkeyFile.read(MasterkeyFile.java:59)
	at org.cryptomator.cryptolib@2.0.3/org.cryptomator.cryptolib.common.MasterkeyFileAccess.readAllegedVaultVersion(MasterkeyFileAccess.java:68)
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.migration.Migrators.determineVaultVersion(Migrators.java:116)
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.migration.Migrators.needsMigration(Migrators.java:79)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.determineVaultState(VaultListManager.java:143)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.create(VaultListManager.java:98)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.lambda$add$0(VaultListManager.java:65)
	at java.base/java.util.Optional.orElseGet(Unknown Source)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.add(VaultListManager.java:64)
	at org.cryptomator.desktop@1.6.10/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:77)
	at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at javafx.base@18.0.1/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:275)
	at javafx.fxml@18.0.1/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:84)
	at javafx.fxml@18.0.1/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1854)
	at javafx.fxml@18.0.1/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1724)
	at javafx.base@18.0.1/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at javafx.base@18.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
	at javafx.base@18.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at javafx.base@18.0.1/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base@18.0.1/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.base@18.0.1/javafx.event.Event.fireEvent(Event.java:198)
	at javafx.graphics@18.0.1/javafx.scene.Node.fireEvent(Node.java:8797)
	at javafx.controls@18.0.1/javafx.scene.control.Button.fire(Button.java:203)
	at javafx.controls@18.0.1/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:208)
	at javafx.controls@18.0.1/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
	at javafx.base@18.0.1/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
	at javafx.base@18.0.1/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at javafx.base@18.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
	at javafx.base@18.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at javafx.base@18.0.1/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base@18.0.1/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.base@18.0.1/javafx.event.Event.fireEvent(Event.java:198)
	at javafx.graphics@18.0.1/javafx.scene.Scene$MouseHandler.process(Scene.java:3881)
	at javafx.graphics@18.0.1/javafx.scene.Scene.processMouseEvent(Scene.java:1874)
	at javafx.graphics@18.0.1/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2607)
	at javafx.graphics@18.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:411)
	at javafx.graphics@18.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:301)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at javafx.graphics@18.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:450)
	at javafx.graphics@18.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
	at javafx.graphics@18.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:449)
	at javafx.graphics@18.0.1/com.sun.glass.ui.View.handleMouseEvent(View.java:551)
	at javafx.graphics@18.0.1/com.sun.glass.ui.View.notifyMouse(View.java:937)
	at javafx.graphics@18.0.1/com.sun.glass.ui.mac.MacView.notifyMouse(MacView.java:127)
Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
	at com.google.gson@2.9.0/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:225)
	at com.google.gson@2.9.0/com.google.gson.Gson.fromJson(Gson.java:991)
	at com.google.gson@2.9.0/com.google.gson.Gson.fromJson(Gson.java:929)
	at org.cryptomator.cryptolib@2.0.3/org.cryptomator.cryptolib.common.MasterkeyFile.read(MasterkeyFile.java:52)
	... 68 common frames omitted
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
	at com.google.gson@2.9.0/com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
	at com.google.gson@2.9.0/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:214)
	... 71 common frames omitted
09:15:54.948 [JavaFX Application Thread] WARN  o.c.common.vaults.VaultListManager - Failed to determine vault state for /Users/jonas/Desktop/Crypto 2
java.io.IOException: Unreadable JSON
	at org.cryptomator.cryptolib@2.0.3/org.cryptomator.cryptolib.common.MasterkeyFile.read(MasterkeyFile.java:59)
	at org.cryptomator.cryptolib@2.0.3/org.cryptomator.cryptolib.common.MasterkeyFileAccess.readAllegedVaultVersion(MasterkeyFileAccess.java:68)
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.migration.Migrators.determineVaultVersion(Migrators.java:116)
	at org.cryptomator.cryptofs@2.4.1/org.cryptomator.cryptofs.migration.Migrators.needsMigration(Migrators.java:79)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.determineVaultState(VaultListManager.java:143)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.create(VaultListManager.java:98)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.lambda$add$0(VaultListManager.java:65)
	at java.base/java.util.Optional.orElseGet(Unknown Source)
	at org.cryptomator.desktop@1.6.10/org.cryptomator.common.vaults.VaultListManager.add(VaultListManager.java:64)
	at org.cryptomator.desktop@1.6.10/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:77)
	at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at javafx.base@18.0.1/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:275)
	at javafx.fxml@18.0.1/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:84)
	at javafx.fxml@18.0.1/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1854)
	at javafx.fxml@18.0.1/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1724)
	at javafx.base@18.0.1/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at javafx.base@18.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
	at javafx.base@18.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at javafx.base@18.0.1/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base@18.0.1/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.base@18.0.1/javafx.event.Event.fireEvent(Event.java:198)
	at javafx.graphics@18.0.1/javafx.scene.Node.fireEvent(Node.java:8797)
	at javafx.controls@18.0.1/javafx.scene.control.Button.fire(Button.java:203)
	at javafx.controls@18.0.1/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:208)
	at javafx.controls@18.0.1/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
	at javafx.base@18.0.1/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
	at javafx.base@18.0.1/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at javafx.base@18.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
	at javafx.base@18.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at javafx.base@18.0.1/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@18.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@18.0.1/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base@18.0.1/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.base@18.0.1/javafx.event.Event.fireEvent(Event.java:198)
	at javafx.graphics@18.0.1/javafx.scene.Scene$MouseHandler.process(Scene.java:3881)
	at javafx.graphics@18.0.1/javafx.scene.Scene.processMouseEvent(Scene.java:1874)
	at javafx.graphics@18.0.1/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2607)
	at javafx.graphics@18.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:411)
	at javafx.graphics@18.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:301)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at javafx.graphics@18.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:450)
	at javafx.graphics@18.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
	at javafx.graphics@18.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:449)
	at javafx.graphics@18.0.1/com.sun.glass.ui.View.handleMouseEvent(View.java:551)
	at javafx.graphics@18.0.1/com.sun.glass.ui.View.notifyMouse(View.java:937)
	at javafx.graphics@18.0.1/com.sun.glass.ui.mac.MacView.notifyMouse(MacView.java:127)
Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
	at com.google.gson@2.9.0/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:225)
	at com.google.gson@2.9.0/com.google.gson.Gson.fromJson(Gson.java:991)
	at com.google.gson@2.9.0/com.google.gson.Gson.fromJson(Gson.java:929)
	at org.cryptomator.cryptolib@2.0.3/org.cryptomator.cryptolib.common.MasterkeyFile.read(MasterkeyFile.java:52)
	... 68 common frames omitted
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
	at com.google.gson@2.9.0/com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
	at com.google.gson@2.9.0/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:214)
	... 71 common frames omitted

Well, not exactly the same problem as before, but you cannot say i did not warned you :wink:

But i guess also there we need to adjust the software.


In your case, you can also try older backups of the masterkey. Just be aware that you might need different (aka older) password to unlock it then. Before you do this procedure, maybe copy all masterkey backups to a different place so you can restore the orignal state of the vault dir.

@tobihagemann Since the iOS Apps can work with the vault, do you have an idea whats went wrong here?

2 Likes

I mean, the error says Unreadable JSON. Would be interesting to know if you could just “fix” the JSON file. Does masterkey.cryptomator resemble anything like this if you open it with a simple text editor (like TextEdit)?

{
    "version": 999,
    "scryptSalt": "QGk...jY=",
    "scryptCostParam": 16384,
    "scryptBlockSize": 8,
    "primaryMasterKey": "QDi...Q==",
    "hmacMasterKey": "L83...Q==",
    "versionMac": "3/U...9Q="
}

@tobihagemann thanks for the advice. Apparently three of my masterkey files were broken (just empty). Luckily two of the old backups contained a readable JSON and I could open the vault and also migrate it to the new format → now I have an additional vault.cryptomator file.

1 Like