Spectra
Browse docs

troubleshooting

Reset workspaces & sign out

One-click recovery if the desktop terminal crashes when you add a workspace tab or the layout glitches in a way that persists across restarts.


If the desktop terminal crashes when you click the "+" tab button, won't render a chart after restart, or shows persistent layout glitches that survive a restart and reinstall, the most likely cause is your locally-cached workspace state having a corrupt field that we can't detect at load time. The recovery is one click.

The button

Account ▼ → Reset workspaces & sign out

Located in the top-right account dropdown, right above the regular Sign Out entry.

What it does

  1. Wipes the local workspace cache file (%LOCALAPPDATA%\Spectra\app_state.json on Windows; the macOS / Linux equivalent under your config dir).
  2. Resets every in-memory chart panel to the default trading layout.
  3. Signs you out so the next sign-in re-hydrates your workspace from the cloud cleanly.

Your saved workspaces, charts, alerts, and trading history are stored server-side and come back when you sign in again. The only thing this button discards is the local cache and the current session's in-memory layout.

When to use it

Use it if you see ANY of these symptoms that survive a normal restart:

  • The app crashes when you click "+" to add a workspace tab.
  • A chart panel renders blank or with garbled GPU artifacts every frame.
  • The app process exits silently (no error window, no console message) shortly after launch.
  • You see the message "Quarantined raw payload to workspaces/broken-..." in the panic log (%LOCALAPPDATA%\Spectra\panic.log).

What if it doesn't help

If the crash persists after sign-out + sign-in:

  1. Restart Windows. A reboot clears stuck GPU driver state that sometimes survives process termination.
  2. Update your GPU driver. Both NVIDIA and AMD have shipped process-termination fixes for D3D12 / Vulkan in 2025–2026 drivers.
  3. Check your AV / endpoint protection. Some security software rewrites process memory and can crash apps during wgpu::Queue::submit.
  4. Send us your panic log. If %LOCALAPPDATA%\Spectra\panic.log has entries, attach it to a support email at [email protected] along with the file in %LOCALAPPDATA%\Spectra\workspaces\broken-*.json if one exists. That file is the exact JSON payload that triggered the recovery and lets us reproduce the bug end-to-end.

Why this is needed

The desktop terminal renders charts through wgpu, which talks directly to your GPU driver. A handful of fields in the persisted workspace JSON, if corrupted by a partial write or a future schema mismatch, can shape the loaded Rust state in a way that makes subsequent GPU operations crash the process. The crash bypasses Rust's panic machinery entirely, so there's no in-app error to show.

Rather than try to detect every possible corruption pattern at load time (a moving target), Spectra:

  1. Quarantines any payload that fails to deserialize cleanly, writing it to %LOCALAPPDATA%\Spectra\workspaces\broken-<ts>.json for forensic recovery before falling back to defaults.
  2. Exposes this one-click reset as the user-facing escape hatch for the harder case where the JSON parses successfully but its contents trigger the crash downstream.

Both mechanisms together make sure a bad save can't trap you out of the app permanently.