Skip to main content

Debug Environment Variables

bd supports several environment variables for debugging specific subsystems. Enable these when troubleshooting issues. Example usage:
Disable debug logging after troubleshooting: unset BD_DEBUG BD_DEBUG_RPC

Installation Issues

bd: command not found

bd is not in your PATH. Either:

Wrong version running

If bd version shows an unexpected version, you likely have multiple bd binaries in your PATH. Diagnosis:
Solution:
Choose one installation method (Homebrew recommended) and stick with it. Avoid mixing go install with package managers.

Crashes on macOS

Some users report crashes when running bd init or other commands. This is typically caused by CGO/SQLite compatibility issues. Workaround:

Antivirus False Positives

Antivirus software (Kaspersky, Windows Defender) may flag bd as malware. This is a false positive common with Go binaries. Solutions:
  1. Add bd to antivirus exclusions (recommended)
  2. Verify file integrity before excluding:
    Compare with checksums from the GitHub release page
  3. Report false positive to your antivirus vendor
For complete instructions, see the Antivirus Guide.

Database Issues

bd shows 0 issues but database has data

Symptom: All bd commands return empty results. Diagnosis:
Fix:
  1. Upgrade bd to latest version
  2. Ensure Dolt server is running from correct directory
  3. Verify metadata.json points to right server
  4. Remove stale .beads/dolt/ directory if exists alongside server mode:

Database is locked

Another bd process is accessing the database.
For high-concurrency scenarios (multiple agents), use Dolt server mode which handles concurrent access natively.

Import fails with missing parent errors

If you see errors like parent issue bd-abc does not exist when importing hierarchical issues: Quick fix using resurrection:
What resurrection does:
  1. Searches import data for missing parent issue
  2. Recreates it as tombstone (Status=Closed, Priority=4)
  3. Preserves parent’s original title and description
  4. Maintains referential integrity for children
Other handling modes:

Old data returns after reset

Symptom: After bd admin reset --force, old issues reappear. Cause: Reset only removes local data. Old data can return from:
  1. Dolt remotes - Old data may exist there
  2. Remote sync branch - Old data on remote
  3. Other machines - Other clones may push old data
Complete clean slate:

Database corruption

Distinguish between logical consistency issues (ID collisions) and physical database corruption (disk failures).
For physical database corruption:
For logical consistency issues:

Git and Sync Issues

Merge conflicts

Dolt handles merge conflicts natively with cell-level merge.
With hash-based IDs (v0.20.1+), ID collisions don’t occur. Different issues get different hash IDs.

”Branch already checked out” when switching branches

Symptom:
Cause: Beads creates git worktrees when using sync-branch feature. Solution:

Auto-sync not working

Ready Work and Dependencies

bd ready shows nothing but I have open issues

Those issues probably have open blockers.
Only blocks dependencies affect ready work.

Circular dependency errors

bd prevents dependency cycles which break ready work detection.

Dependencies not showing up

Check the dependency type:
Dependency types:
  • blocks - Hard blocker, affects ready work
  • related - Soft relationship, doesn’t block
  • parent-child - Hierarchical (child depends on parent)
  • discovered-from - Work discovered during another issue

Performance Issues

Export/import is slow

For large databases (10k+ issues):

Commands are slow

Consider splitting large projects into multiple databases:

Agent-Specific Issues

Agent creates duplicate issues

Prevention strategies:
  • Have agents search first: bd list --json | grep "title"
  • Use labels to mark auto-created issues: bd create "..." -l auto-generated
  • Review and deduplicate periodically
  • Use bd merge to consolidate: bd merge bd-2 --into bd-1

Agent can’t find ready work

Sandboxed environments (Codex, Claude Code)

Issue: Sandboxed environments restrict permissions, causing “out of sync” errors. Quick fix: Sandbox mode (auto-detected in v0.21.1+)
What sandbox mode does:
  • Uses embedded database mode (no server needed)
  • Disables auto-export/import
  • Works in network-restricted environments
Escape hatches for stuck states:
Use --allow-stale sparingly - you may see incomplete or outdated data.

Platform-Specific Issues

Windows: Path issues

Windows: Controlled Folder Access blocks bd init

Symptom: bd init hangs indefinitely with high CPU. Solution: Add bd.exe to Controlled Folder Access whitelist:
  1. Open Windows Security → Virus & threat protection
  2. Click “Ransomware protection” → “Manage ransomware protection”
  3. Under “Controlled folder access”, click “Allow an app”
  4. Add bd.exe (typically in %USERPROFILE%\go\bin\bd.exe)
  5. Retry bd init

macOS: Gatekeeper blocking execution

Linux: Permission denied

Getting Help

If none of these solutions work:
  1. Check existing issues: GitHub Issues
  2. Enable debug logging: Use the debug environment variables above
  3. File a bug report including:
    • bd version: bd version
    • OS and architecture: uname -a
    • Error message and full command
    • Steps to reproduce
  4. Join discussions: GitHub Discussions