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.
What to Collect
Section titled “What to Collect”1. Debug log from the failing command
Section titled “1. Debug log from the failing command”Run the command that is failing with debug logging enabled, redirecting stderr to a file:
canopy index . --log-level debug 2>canopy-debug.logOr for MCP server issues:
canopy serve /path/to/repo --log-level debug 2>canopy-serve-debug.logThe --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.
2. Doctor report
Section titled “2. Doctor report”canopy doctor --repo . > canopy-doctor.txt 2>&1This 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.
3. License status
Section titled “3. License status”canopy license > canopy-license.txt 2>&1This 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.
4. Canopy version
Section titled “4. Canopy version”canopy --versionInclude the version string in your support email even if it is also in the debug log.
5. Heartbeat status (for license issues)
Section titled “5. Heartbeat status (for license issues)”canopy config heartbeat show > canopy-heartbeat.txt 2>&1This shows the last heartbeat timestamp, cached status, and next scheduled attempt. Nothing is transmitted by running this command.
What to Redact Before Sending
Section titled “What to Redact Before Sending”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)
How to Send
Section titled “How to Send”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.txtcanopy-license.txtcanopy-heartbeat.txt(for license/activation issues)
Quick Reference: All Diagnostic Commands
Section titled “Quick Reference: All Diagnostic Commands”# 1. Debug logcanopy <failing-command> --log-level debug 2>canopy-debug.log
# 2. Doctor reportcanopy doctor --repo . > canopy-doctor.txt 2>&1
# 3. License statuscanopy license > canopy-license.txt 2>&1
# 4. Versioncanopy --version
# 5. Heartbeat status (license issues only)canopy config heartbeat show > canopy-heartbeat.txt 2>&1Run all of these before sending a support request. Attach the .txt and .log files.