mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
On secureblue, WebKit cannot start the sandbox for the verification page: bubblewrap is kept from the journal socket, xdg-dbus-proxy fails, and WebKit ends its process with g_error. The webview lived in pdfs-app, so the whole app crashed after the sign-in (#29). - gui: `pdfs-app --human-verification` shows the page in its own window, reads the URL on stdin and prints the token on stdout; its logs go to stderr - gui: a child that dies or fails without a token ends the sign-in with a message that the page could not be opened, instead of "cancelled" - i18n: translate the new message in every catalog - docs: B195 in the bug ledger, the cause and a one-time workaround in TROUBLESHOOTING.md, the child process in ARCHITECTURE.md, changelog
237 lines
9.2 KiB
Markdown
237 lines
9.2 KiB
Markdown
# Troubleshooting
|
|
|
|
Start with `pdfs diagnose`, then find your symptom below. If nothing here helps,
|
|
[open an issue](https://github.com/narrrl/proton-drive-linux/issues/new/choose) with the
|
|
information listed under [Reporting a problem](#reporting-a-problem).
|
|
|
|
- [First checks](#first-checks)
|
|
- [Signing in](#signing-in)
|
|
- [The Proton Drive folder](#the-proton-drive-folder)
|
|
- [Uploads and sync](#uploads-and-sync)
|
|
- [Disk space](#disk-space)
|
|
- [Desktop integration](#desktop-integration)
|
|
- [Start over with a clean local state](#start-over-with-a-clean-local-state)
|
|
- [Reporting a problem](#reporting-a-problem)
|
|
|
|
## First checks
|
|
|
|
### `pdfs diagnose`
|
|
|
|
Checks the installation and prints a report. It does not need the service, because the state
|
|
worth diagnosing is often the one where the service will not start.
|
|
|
|
```console
|
|
$ pdfs diagnose
|
|
Paths
|
|
[ok ] state dir: /home/you/.local/state/proton-drive-linux
|
|
[ok ] cache dir: /home/you/.cache/proton-drive-linux
|
|
[ok ] state dir writable: write and fsync succeeded
|
|
[ok ] database: /home/you/.local/state/proton-drive-linux/cache.db (473.1 MiB)
|
|
|
|
FUSE
|
|
[ok ] /dev/fuse: /dev/fuse
|
|
[ok ] unmount helper: fusermount3 or fusermount on PATH
|
|
|
|
Account
|
|
[ok ] keyring session: you@proton.me
|
|
|
|
Daemon
|
|
[ok ] control socket: /home/you/.local/state/proton-drive-linux/control.sock
|
|
[ok ] daemon responding
|
|
[ok ] active mount: /home/you/ProtonDrive (fuse.protondrive)
|
|
[ok ] network: online
|
|
[ok ] queued writes: none
|
|
[ok ] database integrity: SQLite integrity_check passed
|
|
[ok ] configured mountpoint: /home/you/ProtonDrive
|
|
|
|
No problems found.
|
|
```
|
|
|
|
It exits non-zero when a check fails, so it also works in a health-check script.
|
|
|
|
### Logs
|
|
|
|
```bash
|
|
journalctl --user -u proton-drive.service -f # follow the service
|
|
journalctl --user -u proton-drive.service -b -p warning # warnings since boot
|
|
```
|
|
|
|
For more detail, raise the log level with a drop-in (see
|
|
[CONFIGURATION.md](CONFIGURATION.md#the-systemd-service)) and restart the service.
|
|
|
|
### Service state
|
|
|
|
```bash
|
|
systemctl --user status proton-drive.service
|
|
pdfs status
|
|
```
|
|
|
|
## Signing in
|
|
|
|
**"Proton is asking for a CAPTCHA"** — Proton wants human verification, usually on a VPN or an
|
|
unfamiliar network. The CLI cannot show it. Sign in with `pdfs-app`, which displays the challenge;
|
|
the stored session then works for the CLI too.
|
|
|
|
**"The verification page couldn't be opened"** — WebKit, which shows the CAPTCHA page, could not
|
|
start its sandbox. Hardened systems such as secureblue keep its bubblewrap from the journal socket,
|
|
and the log then shows `bwrap: Can't get type of source /run/systemd/journal/socket: Permission
|
|
denied` and `Failed to fully launch dbus-proxy`. Check that `bwrap` and `xdg-dbus-proxy` are
|
|
installed. If they are, sign in once with the sandbox switched off for this one run:
|
|
|
|
```bash
|
|
WEBKIT_DISABLE_SANDBOX_THIS_IS_DANGEROUS=1 pdfs-app
|
|
```
|
|
|
|
Quit the app first, so this starts a new instance. The page then runs without WebKit's isolation,
|
|
so use this only for the sign-in. The stored session keeps working without it. Signing in from
|
|
your usual network, without a VPN, often avoids the CAPTCHA in the first place.
|
|
|
|
**Sign-in works but is forgotten after a restart** — no Secret Service provider is running, or its
|
|
keyring is locked. Install and unlock GNOME Keyring, KWallet or KeePassXC (with Secret Service
|
|
enabled). `pdfs diagnose` shows `keyring session` as failing in that case.
|
|
|
|
## The Proton Drive folder
|
|
|
|
> [!TIP]
|
|
> When the service hangs, any program that touches the Proton Drive folder can hang with it,
|
|
> including `ls` and your shell's prompt. Prefix exploratory commands with `timeout 5`.
|
|
|
|
**`Transport endpoint is not connected`** — the service stopped without unmounting. Unmount and
|
|
restart:
|
|
|
|
```bash
|
|
fusermount3 -uz ~/ProtonDrive
|
|
systemctl --user restart proton-drive.service
|
|
```
|
|
|
|
**The folder is empty or missing** — check that the service runs and is signed in
|
|
(`pdfs status`). The service waits for a stored session before it mounts.
|
|
|
|
**Everything in the folder hangs** — find out what the service is doing, then restart it:
|
|
|
|
```bash
|
|
timeout 10 pdfs diagnostics
|
|
systemctl --user restart proton-drive.service
|
|
```
|
|
|
|
The service watchdog restarts a service that stops answering for two minutes by itself. Attach the
|
|
`pdfs diagnostics` output to a bug report; it shows which worker is stuck.
|
|
|
|
**A change made on another device does not show up** — changes arrive through Proton's event
|
|
stream, normally within seconds. To fetch a folder again at once:
|
|
|
|
```bash
|
|
pdfs refresh Documents
|
|
```
|
|
|
|
**"Permission denied" when writing** — the item is in a share where you are a viewer, or under
|
|
`Shared with me/`, which is read-only as a folder. Check your role with `pdfs shared-with-me`.
|
|
|
|
**`ln` or another program fails with "Operation not permitted"** — Proton Drive cannot store
|
|
symbolic links, hard links, device files or FIFOs, so creating one fails at once. The error is
|
|
intentional. Use a synced folder for projects that need them, or exclude those paths.
|
|
|
|
## Uploads and sync
|
|
|
|
**A change shows here but not on other devices** — changes are recorded on this computer first
|
|
and sent from a queue. List what is still waiting, and what needs attention:
|
|
|
|
```bash
|
|
pdfs sync queue
|
|
pdfs sync issues
|
|
```
|
|
|
|
The app shows the same on **Sync → Overview**. A change waits while the service is offline or
|
|
sync is paused (`pdfs status`), and backs off after a failure. To retry at once:
|
|
|
|
```bash
|
|
pdfs sync retry # every failed operation
|
|
pdfs sync retry 42 # one operation
|
|
```
|
|
|
|
A change Proton Drive refuses (storage full, access taken away, folder gone) is listed by
|
|
`pdfs sync issues` with what to do. It stays queued until you fix the cause or drop it. Dropping
|
|
it undoes it here; save a file's content first if you want to keep it:
|
|
|
|
```bash
|
|
pdfs sync export 42 ~/Desktop/
|
|
pdfs sync discard 42
|
|
```
|
|
|
|
If you suspect the local-first behaviour of 3.0.0 itself, `"local_first": false` in `config.json`
|
|
makes the Proton Drive folder wait for Proton Drive again while online (see
|
|
[CONFIGURATION.md](CONFIGURATION.md#local_first)), and please report the problem.
|
|
|
|
**A file in a synced folder does not upload** — check that:
|
|
|
|
- it is not matched by `.pdfsignore` or `ignore_patterns`;
|
|
- no program still holds it open for writing (such files wait until closed);
|
|
- sync is not paused (`pdfs status`, tray);
|
|
- the folder has no error on **Sync → Folders**.
|
|
|
|
`pdfs sync now` starts a pass immediately.
|
|
|
|
**Files named `(sync-conflict …)` appeared** — the file changed in two places at once. Nothing was
|
|
lost; see [Conflicts](USER_GUIDE.md#conflicts) to pick a version.
|
|
|
|
**Photos show the wrong date after a Google Takeout import** — run
|
|
`pdfs redate-photos --dry-run`, see [USER_GUIDE.md](USER_GUIDE.md#importing-from-google-photos).
|
|
|
|
## Disk space
|
|
|
|
| What | Check | Reduce |
|
|
|---|---|---|
|
|
| Content cache | `pdfs cache inspect` | Lower **Preferences → Storage → Cache size limit**, or `pdfs cache clear` |
|
|
| Available-offline files | `pdfs pins` | `pdfs unpin PATH` |
|
|
| Metadata database | `pdfs cache inspect` (reclaimable) | `pdfs cache vacuum` |
|
|
| Synced folders | `pdfs sync list` | Switch large folders to online only: `pdfs sync mode ID ondemand` |
|
|
|
|
`pdfs cache vacuum` locks the database while it runs and needs free space for a second copy of it.
|
|
|
|
## Desktop integration
|
|
|
|
**No tray icon on GNOME** — install and enable the AppIndicator and KStatusNotifierItem Support
|
|
extension. Other desktops show the icon natively. If you hid it from its own menu, turn it back on
|
|
under **Preferences → General → Appearance**.
|
|
|
|
**The search launcher does nothing** — `pdfs-prompt` needs the service. Run it from a terminal to
|
|
see its error. For `--fzf`, install `fzf` and a supported terminal.
|
|
|
|
**The app shows "Not responding"** — the service runs but does not answer within five seconds.
|
|
See [Everything in the folder hangs](#the-proton-drive-folder).
|
|
|
|
## Start over with a clean local state
|
|
|
|
This removes the local database and cache so they are rebuilt from Proton Drive. It is the fix for
|
|
a damaged database and the only way to downgrade to an older release.
|
|
|
|
> [!WARNING]
|
|
> Content in `staging/` and `recovery/` has not reached Proton Drive yet. Deleting it loses those
|
|
> changes permanently. Wait until `pdfs sync queue` is empty.
|
|
|
|
```bash
|
|
pdfs sync queue # must list nothing
|
|
systemctl --user stop proton-drive.service
|
|
mv ~/.local/state/proton-drive-linux ~/.local/state/proton-drive-linux.bak
|
|
mv ~/.cache/proton-drive-linux ~/.cache/proton-drive-linux.bak
|
|
systemctl --user start proton-drive.service
|
|
```
|
|
|
|
Your session is in the keyring and your settings in `~/.config`, so you stay signed in. Synced
|
|
folders are not re-attached automatically; restore them with `pdfs sync restore` as described in
|
|
[RECOVERY.md](RECOVERY.md#2-restore-your-synced-folders). Delete the `.bak` directories once
|
|
everything is back.
|
|
|
|
## Reporting a problem
|
|
|
|
Include:
|
|
|
|
- `pdfs --version`, your distribution and desktop;
|
|
- the output of `pdfs diagnose`;
|
|
- relevant log lines from `journalctl --user -u proton-drive.service`;
|
|
- for a hang, the output of `timeout 10 pdfs diagnostics`;
|
|
- the steps that reproduce it.
|
|
|
|
Logs contain file names. Remove anything private before posting. Report security problems
|
|
privately as described in [SECURITY.md](../SECURITY.md).
|