Skip to content
Canopy is in pre-release. These docs describe the product at its public launch — commands, tool names, and integration examples reflect what you'll see once binaries ship. Join the waitlist →

Collect Diagnostic Logs

Before contacting support, collect the diagnostic information below. A complete report helps us resolve your issue in one exchange rather than several back-and-forth questions.


Run the command that is failing with debug logging enabled, redirecting stderr to a file:

Terminal window
canopy index . --log-level debug 2>canopy-debug.log

Or for MCP server issues:

Terminal window
canopy serve /path/to/repo --log-level debug 2>canopy-serve-debug.log

The --log-level debug flag works on every command, and 2> redirects Canopy’s log output (which goes to stderr) to a file, leaving stdout clean.

Terminal window
canopy doctor --repo . > canopy-doctor.txt 2>&1

This is the one-stop readiness view: install info, license, index status, the active summary backend and its data-flow line, and which cloud-credential environment variables are set (presence only — values are never printed). Pass --json for machine-readable output.

Terminal window
canopy license > canopy-license.txt 2>&1

This shows your tier, masked email, features, and expiration date. Your full email address is never printed — only a masked version like p***y@example.com.

Terminal window
canopy --version

Include the version string in your support email even if it is also in the debug log.

Terminal window
canopy config heartbeat show > canopy-heartbeat.txt 2>&1

This shows the last heartbeat timestamp, cached status, and next scheduled attempt. Nothing is transmitted by running this command.


Review the files before attaching them to a support request:

In canopy-debug.log / canopy-serve-debug.log:

  • Search for file paths that contain personal directory names you do not want to share: grep -n "home/username" canopy-debug.log
  • Remove any lines containing internal API keys or tokens if they appear (this would be a separate security concern — contact us separately if you see credentials in logs)
  • Repository names and file paths are generally safe to share with support

In canopy-doctor.txt:

  • The report shows credential environment variable names and whether they are set — never their values. No redaction is typically needed.

In canopy-license.txt:

  • Your email address is already masked by Canopy (e.g., p***y@example.com). No redaction needed.

Do not share:

  • Your raw license key string
  • Your Stripe payment information
  • Any source code you do not want Gulf Shield Technologies to see (diagnostic logs do not contain source code, but be aware of any custom scripts you might attach)

Email support at support@gulfshieldtech.com with:

Subject line: Brief description of the issue (e.g., “canopy activate: InvalidSignature on fresh key”)

Body:

  • One-paragraph description of the problem: what you did, what you expected, what happened instead
  • Platform (macOS Apple Silicon / macOS Intel / Linux x86-64 / Linux ARM64 / Windows)
  • Whether this was working before and what changed (new install, recent update, new repo, etc.)

Attachments:

  • canopy-debug.log (or the relevant debug log file)
  • canopy-doctor.txt
  • canopy-license.txt
  • canopy-heartbeat.txt (for license/activation issues)

Terminal window
# 1. Debug log
canopy <failing-command> --log-level debug 2>canopy-debug.log
# 2. Doctor report
canopy doctor --repo . > canopy-doctor.txt 2>&1
# 3. License status
canopy license > canopy-license.txt 2>&1
# 4. Version
canopy --version
# 5. Heartbeat status (license issues only)
canopy config heartbeat show > canopy-heartbeat.txt 2>&1

Run all of these before sending a support request. Attach the .txt and .log files.