Troubleshooting | Ghostable Desktop | Ghostable                              Menu

 Troubleshooting

   Collect diagnostics first
-------------------------

- Open **Application Settings → Info** and record Desktop, build, and bundled CLI versions.
- Record the macOS version and whether the problem affects every project or one repository.
- Copy the exact error text, but redact secrets, license keys, activation tokens, private identities, and local usernames in paths.
- Run `git status --short` before retrying a write operation.

 The app will not open
---------------------

- Confirm macOS 13 or newer and download a fresh DMG from the [official download page](https://ghostable.dev/download).
- Move Ghostable to Applications before launching it.
- If Gatekeeper rejects the signature or notarization, do not bypass the warning; replace the download and contact support with the exact message.
- If a window is off-screen or unresponsive, quit Ghostable normally, reopen it, and test the launcher before opening a project.

 License problems
----------------

### Activation limit reached

Release an old device from its License settings or use [Manage licenses](https://ghostable.dev/licenses/manage). Seats and activations are distinct from project devices.

### License is unverified or offline time expired

Connect to the internet, check system date and time, then choose **Validate Now**. A perpetual license can still need a fresh signed offline entitlement.

### License key missing

Request recovery using the purchase email. Do not create a second purchase merely to work around a recoverable key.

### Project remains blocked after activation

Close and reopen the project window after License settings reports a valid entitlement. If the plan is valid but the project still fails, collect both version numbers and the exact message.

 A project will not open
-----------------------

- Confirm the launcher path still exists and points to the repository root.
- Use the **Setup** badge as a hint, then verify `.ghostable/ghostable.yaml` exists in the selected folder.
- For a new clone or machine, complete the device join and access-grant workflow; a repository clone alone cannot decrypt values.
- Pull the latest project state and resolve Git conflicts before retrying.
- When moving a repository, update its launcher or Project Settings path instead of editing application metadata manually.

 CLI or command failures
-----------------------

 Info should show a bundled CLI version. If it reports unavailable, reinstall the current Desktop build. Desktop uses its bundled engine for project commands; a different global `ghostable` binary does not repair a missing app bundle.

 Command errors preserve their CLI message. Check repository permissions, project identity access, the selected environment, Git conflict markers, and whether an input file is inside the project root.

 Reproduce read-only behavior with the matching CLI documentation when useful, but do not run an unfamiliar write command against production state merely to gather more output.

 Local-file problems
-------------------

- If pull cannot write, check folder permissions and whether another process holds the file.
- If push shows unexpected changes, stop and compare the local file with the selected shared environment.
- If cleanup lists an important file, leave dry-run enabled and adjust the operation rather than confirming.
- If `.env.example` loses comments, restore it from Git and regenerate only after reviewing replace mode.

 Validation or Review surprises
------------------------------

- Confirm the environment selected in the sidebar matches the diagnostic.
- Inspect global rules and environment overrides for the key.
- Review the project's scan level and ignored paths.
- Treat a hard-coded secret finding as potentially real until the credential pattern and source are understood.
- Do not add a broad ignore or fake placeholder only to make the count reach zero.

 Updates
-------

 If no update appears, compare the installed version and updates-through date in License settings. **Renewal required** means the newer release is outside the included update period; it does not invalidate the already-covered version.

 If an eligible update fails to install, download the current build directly and replace the application after quitting Ghostable. Preserve the license key or recovery email before wiping application data.

 Contact support
---------------

 Use the [contact form](https://ghostable.dev/contact) with the diagnostics collected above. For a suspected vulnerability, use the [security report form](https://ghostable.dev/security) instead.

    On this page

    [ ![Ghostable](https://ghostable.dev/images/logo-dark.svg) ![Ghostable](https://ghostable.dev/images/logo-light.svg) ](https://ghostable.dev)

   Desktop     [   CLI 3.x ](https://ghostable.dev/docs/3.x) [   Desktop ](https://ghostable.dev/docs/desktop)

  CLI 3.x introduction Documentation local first no login encrypted repository plaintext hosted service

  Installation Documentation brew homebrew npm npx linux windows PATH version update

  Start a new project Getting Started setup seed dotenv owner initialize

  Adopt an existing project Getting Started existing env import authoritative source adopt

  Onboard a team member Getting Started join request approve roles offboarding pull request

  Repository and storage Core Concepts .ghostable git conflict merge worktree private identity metadata

  Environments Core Concepts protected production preview staging push sync pull replace run mask-output

  Variables and promotions Core Concepts var promote copy context annotation key

  Access and devices Core Concepts identity reader writer grantor owner revoke rotate leave delete

  Daily development workflow Workflows pull diff validate review clean daily

  Review and secret scanning Workflows scan sarif github suppress secrets drift

  Hygiene and rotation Workflows rotation stale unused suppression environment key

  Automation credentials Automation &amp; CI GHOSTABLE\_CI\_TOKEN ci deploy credential powershell revoke replace

  Continuous integration Automation &amp; CI GitHub Actions fork pull request JSON stdout stderr exit codes mask-output

  Deployments Automation &amp; CI Forge Vapor Cloud provider CLI dry-run preserve remote keys temporary files

  Validation Reference schema required nullable regex min max different\_from

  Command reference Reference --help --json NO\_COLOR flags aliases exit code automation

  Configuration Reference ghostable.yaml activity mode auditEnvironments scan ignores deployTarget dotenv syntax

  Security Reference cryptography XChaCha20 Poly1305 HKDF user presence threat model

  Backups &amp; Offline Reference recovery offline restore clone key identity

  Agent integration Reference AGENTS.md capabilities allowlist coding agent

  Troubleshooting Reference no project found revoked identity stale policy user presence invalid CI token provider CLI git conflict diagnostics

  Ghostable Desktop overview Desktop

  Installation Desktop

  Projects and setup Desktop

  Interface tour Desktop

  Environments and variables Desktop

  Local environment files Desktop

  Validation and review Desktop

  Activity Desktop

  Access and automation Desktop

  Project settings Desktop

  Application settings Desktop

  Licensing and updates Desktop

  Security and storage Desktop

  Troubleshooting Desktop    No results found
