Android: Storage permission immediately dropped on GrapheneOS

Open
#644 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
android, kotlin
Domain
mobile

Research direction

Start by tracing the AuthenticateCloudPrester permission handling shown in the log, then reproduce the folder-selection flow on GrapheneOS Android 17 with the listed Syncthing vault setup. Done means granting access no longer immediately triggers the permission-revoked loop and the local vault can be added.

Written by the indexing model from the issue text.

Description

type:bug
Please agree to the following
Summary

On GrapheneOS, Cryptomator’s Android app instantly loses storage permission for a local vault folder upon granting it.

System Setup
GrapheneOS Android 17, Pixel 9 Pro XL

Cryptomator Android v1.12.3 (F-Droid)

Other software: Syncthing-Fork (vault directory is fully synced and Syncthing can read/write it fine)


Storage Scopes were enabled for the folder. 

Internal shared storage 

I can see the vault files are there when I navigate to it within Cryptomator.
Cloud Type

Local storage

Steps to Reproduce
  1. "Tap here to create a new vault"
  2. "Add existing vault"
  3. select "Local storage"
  4. Navigate to the Syncthing folder then the vault folder
  5. select "Use this folder"
  6. Prompt "Allow Cryptomator to access this folder? Allow access for [vaultname]" appears,
  7. select "Allow"
  8. Banner on the very bottom instantly appears: "Cryptomator has lost permission to access this location. Please select this folder again to restore this permission"
  9. Select "Use this folder" again, same error (loop)
Expected Behavior

Expect the vault to be added to Cryptomator

Actual Behavior

See "Steps to Reproduce" error loop

Reproducibility

Always

Relevant Log Output
I	20260703043901.080	App	Cryptomator v1.12.3 (3030) "F-Droid Main Repo Edition" started on android 17 / API37 using a Pixel 9 Pro XL
I	20260703043901.139	Database	Configure v13
I	20260703043901.140	Database	Open v13
I	20260703043901.179	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.VaultListActivity@5fc2333
I	20260703043901.279	App	Cryptors service connected
I	20260703043901.280	App	Cryptors service connected
I	20260703043901.281	App	Auto upload service connected
I	20260703043904.355	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.SettingsActivity@cdaed5
I	20260703043928.751	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.AutoUploadChooseVaultActivity@3ee0f68
I	20260703043932.401	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.SettingsActivity@cdaed5
I	20260703043940.219	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.VaultListActivity@5fc2333
I	20260703043943.542	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.ChooseCloudServiceActivity@7353e94
I	20260703043951.459	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.CloudConnectionListActivity@edf506b
I	20260703043953.385	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.ChooseCloudServiceActivity@7353e94
I	20260703043953.454	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.CreateVaultActivity@3dd77a9
I	20260703043957.135	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.BrowseFilesActivity@2fa2ad2
I	20260703044001.732	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.SetPasswordActivity@5154870
I	20260703044025.839	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.VaultListActivity@5fc2333
I	20260703044027.882	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.UnlockVaultActivity@40ed6
I	20260703044035.974	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.VaultListActivity@5fc2333
I	20260703044036.031	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.BrowseFilesActivity@ab5e29b
I	20260703044039.456	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.VaultListActivity@5fc2333
I	20260703044042.174	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.VaultListActivity@3b37374
I	20260703044051.289	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.UnlockVaultActivity@de2adaf
I	20260703044053.039	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.VaultListActivity@3b37374
I	20260703044101.438	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.SettingsActivity@60e9da3
I	20260703044144.845	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.SettingsActivity@60e9da3
I	20260703044146.551	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.VaultListActivity@3b37374
I	20260703044155.213	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.ChooseCloudServiceActivity@4e35bb2
I	20260703044156.688	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.CloudConnectionListActivity@9d834e1
I	20260703044158.682	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.ChooseCloudServiceActivity@4e35bb2
I	20260703044158.752	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.AuthenticateCloudActivity@3f7f10f
E	20260703044158.753	AuthicateCloudPrester	Permission revoked, ask to re-pick location
E	20260703044216.966	AuthicateCloudPrester	Permission granted again
I	20260703044216.967	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.AuthenticateCloudActivity@3f7f10f
I	20260703044217.024	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.ChooseCloudServiceActivity@4e35bb2
I	20260703044217.088	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.AuthenticateCloudActivity@700511f
E	20260703044217.089	AuthicateCloudPrester	Permission revoked, ask to re-pick location
E	20260703044223.693	AuthicateCloudPrester	Permission granted again
I	20260703044223.695	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.AuthenticateCloudActivity@700511f
I	20260703044223.757	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.ChooseCloudServiceActivity@4e35bb2
I	20260703044223.821	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.AuthenticateCloudActivity@6f85bf8
E	20260703044223.821	AuthicateCloudPrester	Permission revoked, ask to re-pick location
E	20260703044228.446	AuthicateCloudPrester	Permission granted again
I	20260703044228.447	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.AuthenticateCloudActivity@6f85bf8
I	20260703044228.504	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.ChooseCloudServiceActivity@4e35bb2
I	20260703044228.566	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.AuthenticateCloudActivity@f842f2d
E	20260703044228.567	AuthicateCloudPrester	Permission revoked, ask to re-pick location
E	20260703044242.473	AuthicateCloudPrester	Permission granted again
I	20260703044242.475	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.AuthenticateCloudActivity@f842f2d
I	20260703044242.529	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.ChooseCloudServiceActivity@4e35bb2
I	20260703044242.587	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.AuthenticateCloudActivity@b616a4e
E	20260703044242.587	AuthicateCloudPrester	Permission revoked, ask to re-pick location
E	20260703045019.644	AuthicateCloudPrester	Permission granted again
I	20260703045019.651	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.AuthenticateCloudActivity@b616a4e
I	20260703045019.672	CryptorsService	ScreenLock received, destroying cryptors and shutting down service
I	20260703045019.776	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.ChooseCloudServiceActivity@4e35bb2
I	20260703045019.879	ActivityLifecycle	onResume org.cryptomator.presentation.ui.activity.AuthenticateCloudActivity@d6e2b80
E	20260703045019.880	AuthicateCloudPrester	Permission revoked, ask to re-pick location
Anything else?

No response

Dominant language
Kotlin
Stars
1.2k
Forks
229
Avg merge
2d 3h
Merged PRs (30d)
3

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from cryptomator/android

All issues in cryptomator/android

Similar issues

More Kotlin issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.