~/docs/features/reporting-problems
╭─ § 03.08 ─╮

Reporting Problems

└───────────╯

Hit a bug? Corral can package up what the maintainers need to diagnose it — recent logs, the state of your projects and infrastructure, and basic system info — and send it in one step, alongside a short description of what went wrong. You stay in control: you see exactly what’s included before anything leaves your machine, and diagnostics are always opt-in.

Reports are daemon-independent — the bundle is assembled and submitted in-process, so you can still file one when Corral itself is wedged or won’t start (often the moment you most need to).

From the macOS app

Open Help → “Report a Problem…” to bring up the report sheet. Two contextual entry points open the same sheet pre-filled:

  • the “Report this problem” link on a failure — it attaches that unit’s failure snapshot, and
  • the recovery screen shown when the background daemon is unreachable.

The sheet asks for:

  • What happened? — a short description (required).
  • Email (optional) — used only to follow up; pre-filled from your license if you have one.
  • Include diagnostics — a toggle, on by default. Expand “What’s included?” to review the exact bundle before sending.

On success you get a reference code — keep it if you’d like to follow up. If you’re offline, Corral saves the bundle locally so nothing is lost; you can retry later, reveal it in Finder, or attach it to an email to support.

From the command line

corral report files a report straight from the terminal — interactively, or scripted for CI/automation. Run with no arguments in a terminal and it opens $EDITOR for the description, then prompts for diagnostics, a contact email, and a confirmation:

corral report

Or pass everything as flags:

corral report -m "wrangler dev exits immediately on start" --include-logs
corral report -m "DNS stopped resolving .test" --unit dns --email [email protected] -y

Off a terminal (or with --json), diagnostics are opt-in — never bundled unless you pass --include-logs (or --save). See the CLI reference for the full flag list and --json output shapes.

From an AI assistant

If you’ve connected an AI tool over MCP, it can file a report for you with the report_problem tool. It’s consent-first: the agent has to show you the exact message and what the diagnostics bundle contains, and diagnostics default to off — so nothing is attached without your explicit yes.

What’s included

A message-only report carries just your description and basic system info. When you include diagnostics, the bundle adds:

  • daemon.log — the tail of Corral’s operational log.
  • App log — the macOS app’s log (when you report from the app).
  • Unit state — the registry of your projects, services, and infrastructure (the single most useful artifact for diagnosing a failure).
  • Recent failure snapshots — diagnostic detail captured at each unit’s last few failures.
  • Crash reports — recent Corral/daemon crash reports from macOS.
  • System info — macOS version, hardware, and your Corral version.

The whole bundle is size-capped; anything oversized is truncated (with a note), never silently dropped.

Privacy

  • User-initiated only. There is no automatic telemetry or background crash upload — a report exists only because you created it.
  • Secrets are redacted at capture time. API tokens, connection strings, and license keys are masked before they’re written into the bundle or your description.
  • File paths and project names are included — they’re load-bearing for diagnosis, and the app says so plainly before you send.
  • Your email and license key, when provided, travel in dedicated fields used only to identify your report and follow up — never in the free-text description.
// Last updated 2026-07-11