Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Collect CodeRabbit debug evidence for support tickets and troubleshooting. Use when encountering persistent issues, preparing support tickets, or collecting diagnostic information for CodeRabbit problems. Trigger with phrases like "coderabbit debug", "coderabbit support bundle", "coderabbit diagnostic", "coderabbit not working evidence".
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 100% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 461% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 147% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 75% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 61% | 0% |
Collect all diagnostic information needed to troubleshoot CodeRabbit issues or file a support request. Since CodeRabbit is a GitHub/GitLab App (not an SDK), debugging focuses on: App installation status, .coderabbit.yaml configuration validity, PR review history, and GitHub webhook delivery logs.
gh) authenticatedbashset -euo pipefail OWNER="${1:-your-org}" REPO="${2:-your-repo}" echo "=== CodeRabbit Debug Bundle ===" echo "Repository: $OWNER/$REPO" echo "Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)" echo "" # Check if CodeRabbit App is installed echo "--- Installation Status ---" INSTALL=$(gh api "repos/$OWNER/$REPO/installation" --jq '.app_slug' 2>/dev/null) if [ "$INSTALL" = "coderabbitai" ]; then echo "CodeRabbit App: INSTALLED" else echo "CodeRabbit App: NOT INSTALLED" echo "Fix: Visit https://github.com/apps/coderabbitai to install" fi
bashset -euo pipefail echo "" echo "--- Configuration Validation ---" # Check if .coderabbit.yaml exists if [ -f .coderabbit.yaml ]; then echo ".coderabbit.yaml: FOUND ($(wc -l < .coderabbit.yaml) lines)" # Validate YAML syntax python3 -c " import yaml, sys try: config = yaml.safe_load(open('.coderabbit.yaml')) print('YAML syntax: VALID') # Check key configuration fields reviews = config.get('reviews', {}) auto_review = reviews.get('auto_review', {}) print(f'auto_review.enabled: {auto_review.get(\"enabled\", \"not set\")}') print(f'auto_review.drafts: {auto_review.get(\"drafts\", \"not set\")}') print(f'profile: {reviews.get(\"profile\", \"not set\")}') base_branches = auto_review.get('base_branches', []) if base_branches: print(f'base_branches: {base_branches}') else: print('base_branches: not set (reviews all branches)') path_filters = reviews.get('path_filters', []) print(f'path_filters: {len(path_filters)} rules') path_instructions = reviews.get('path_instructions', []) print(f'path_instructions: {len(path_instructions)} rules') chat = config.get('chat', {}) print(f'chat.auto_reply: {chat.get(\"auto_reply\", \"not set\")}') except yaml.YAMLError as e: print(f'YAML syntax: INVALID') print(f'Error: {e}') sys.exit(1) " 2>&1 else echo ".coderabbit.yaml: NOT FOUND" echo "Fix: Create .coderabbit.yaml in repository root" fi
bashset -euo pipefail OWNER="${1:-your-org}" REPO="${2:-your-repo}" echo "" echo "--- Recent PR Review History ---" # Check last 10 closed PRs for CodeRabbit reviews for PR_NUM in $(gh api "repos/$OWNER/$REPO/pulls?state=all&per_page=10&sort=created&direction=desc" \ --jq '.[].number'); do PR_TITLE=$(gh api "repos/$OWNER/$REPO/pulls/$PR_NUM" --jq '.title' 2>/dev/null) PR_STATE=$(gh api "repos/$OWNER/$REPO/pulls/$PR_NUM" --jq '.state' 2>/dev/null) CR_REVIEWS=$(gh api "repos/$OWNER/$REPO/pulls/$PR_NUM/reviews" \ --jq '[.[] | select(.user.login=="coderabbitai[bot]")] | length' 2>/dev/null || echo "0") CR_COMMENTS=$(gh api "repos/$OWNER/$REPO/pulls/$PR_NUM/comments" \ --jq '[.[] | select(.user.login=="coderabbitai[bot]")] | length' 2>/dev/null || echo "0") echo "PR #$PR_NUM ($PR_STATE): $CR_REVIEWS reviews, $CR_COMMENTS comments - $PR_TITLE" done
markdown# On any open PR, post this comment: @coderabbitai configuration # CodeRabbit will reply with the active configuration as YAML. # Compare this with your .coderabbit.yaml to find discrepancies. # Discrepancies usually mean: # 1. YAML syntax error causing config to be ignored # 2. Org-level config overriding repo config # 3. Config not on the base branch (CodeRabbit reads from base branch)
markdown# In GitHub UI: 1. Go to repo > Settings > Webhooks 2. Find the CodeRabbit webhook (coderabbit.ai endpoint) 3. Click "Recent Deliveries" 4. Look for: - 200 response codes (success) - 4xx/5xx codes (errors) - Missing deliveries for PR events # Common webhook issues: # - 401: App credentials expired → reinstall # - 404: Webhook URL changed → reinstall # - No deliveries: Webhook was deleted → reinstall App
bashset -euo pipefail OWNER="${1:-your-org}" REPO="${2:-your-repo}" BUNDLE="coderabbit-debug-$(date +%Y%m%d-%H%M%S).txt" { echo "=== CodeRabbit Debug Bundle ===" echo "Repository: $OWNER/$REPO" echo "Generated: $(date -u)" echo "Git branch: $(git branch --show-current 2>/dev/null || echo 'N/A')" echo "Git remote: $(git remote get-url origin 2>/dev/null || echo 'N/A')" echo "" echo "--- .coderabbit.yaml ---" cat .coderabbit.yaml 2>/dev/null || echo "NOT FOUND" echo "" echo "--- App Installation ---" gh api "repos/$OWNER/$REPO/installation" 2>/dev/null || echo "NOT INSTALLED" echo "" echo "--- Last 5 PRs ---" gh api "repos/$OWNER/$REPO/pulls?state=all&per_page=5" \ --jq '.[] | "#\(.number) [\(.state)] \(.title) (by \(.user.login))"' 2>/dev/null echo "" echo "--- GitHub Actions Status ---" gh run list --repo "$OWNER/$REPO" --limit 5 2>/dev/null || echo "N/A" } > "$BUNDLE" echo "Debug bundle saved: $BUNDLE" echo "Review for sensitive data before sharing with support."
| Issue | Cause | Solution | |-------|-------|----------| | gh api returns 404 | Wrong org/repo or no access | Verify repo name and gh auth status | | No CodeRabbit reviews found | App not installed on repo | Install from github.com/apps/coderabbitai | | YAML validation fails | Syntax error in config | Fix YAML syntax, validate before committing | | Webhook deliveries empty | App was uninstalled/reinstalled | Check webhook exists in repo settings |
For common error patterns and fixes, see coderabbit-common-errors.
Other measured skills in the registry, with their headline benchmark lift.