Orchard · 0.1.0 source manual
Troubleshooting
Start with the selected file, identity and endpoint. Keep secrets out of diagnostic reports.
No store found
Use or --store /full/path/to/export.json info. The path must name an existing file, not a directory. On macOS, the app's sandbox can be inaccessible to your terminal. Exporting a copy is an alternative to granting the terminal Full Disk Access. On Linux and Windows, explicitly select the store rather than relying on nested app-data discovery.
A write to .willowdrop is refused
This is intentional. Orchard can read the drop container but cannot re-sign its entries with the app's namespace key. Export a JSON or .our copy and use that file for switch or as an import destination. Do not rename the app's live store or replace it with JSON.
Member lookup chose the wrong person
Matching is case-insensitive, with exact, prefix and substring passes in that order. Each pass takes the first matching member in store order. Use a complete unique name. There is no interactive disambiguation prompt.
No active identity or app.keychain is unavailable
Check or whoami and or login --list. A local export does not need sign-in. A fresh local.device enrollment creates another system; it is not account recovery. Shared app-keychain access needs the provisioned macOS bundle described in installation. An unsigned bare binary cannot gain that access by being placed on PATH.
If several app identities are readable, select one with login --route app.keychain --namespace <hex-prefix>. estate --all can show which have an Online entitlement.
Pairing was refused
Generate the public key on the terminal that will accept the response. A pairing for another subspace is rejected. Check that the payload was copied intact and that the app returned it for the expected system. Version 1 payloads do not contain E2E keys; pair again with a version 2 payload. Keep returned codes and files private.
Stored pairing is not currently wired into online browsing; see identity requirements. Repeating pairing will not change that implementation limitation.
Connection, token and entitlement errors
Check or remote before contacting the server. The default endpoint is localhost, not Ourcana Online. connect checks only the handshake. A stored expired token is refused locally: mint another with bind for the appropriate owned identity or renew an app-issued pairing.
A gate endpoint can refuse a request because the identity lacks entitlement, the token is invalid, or its subspace does not match. A successful login alone does not grant a paid entitlement. estate reports per-identity errors inside its output, including in JSON mode; inspect those rows rather than relying only on the process status.
Digest mismatch or sealed records
Keep verification enabled. A payload digest failure means the returned bytes do not match the entry being read; --no-verify is not a repair. A sealed path means the current keys could not decrypt it. Check the identity and namespace before assuming the server lost data.
Exit codes
| Code | Meaning |
|---|---|
0 | Command completed, or help/version was printed. Empty lists are successful. Some report commands include per-row errors and still return 0. |
1 | Runtime failure, such as missing store, unknown member, invalid data, missing identity, failed request or declined pruning confirmation. |
2 | CLI parsing failure, such as an unknown flag, missing required argument or conflicting flags. |
These are process exit codes, not a stable taxonomy for every failure. Error text is on stderr, not a JSON envelope. --no-color does not currently strip the top-level runtime error prefix's ANSI color escapes.
Report a problem safely
Include or --version, the command with secrets removed, the exit status, the operating system and the error text. Do not attach your store, keys.json, remote.json, tokens or pairing payload. Make a small synthetic reproduction if data shape matters.