Troubleshooting¶
Common issues and solutions for grooveASSIGN.
Installation¶
GitHub App not installed¶
Problem: grooveASSIGN isn't assigning reviewers to new PRs.
Solution:
- Visit the GitHub App installation page
- Click "Configure"
- Select the repositories you want to enable
- Click "Save"
Permissions issues¶
Problem: grooveASSIGN can't assign reviewers or analyze blame.
Solution:
The app requires these permissions:
- Read access: Repository contents, pull requests
- Write access: Pull request reviewers
If permissions were denied:
- Go to repository Settings → GitHub Apps
- Click "Configure" next to grooveASSIGN
- Review and accept required permissions
Reviewer Assignment¶
No reviewers assigned¶
Problem: PR created but grooveASSIGN didn't assign anyone.
Possible causes:
- No eligible reviewers found
- Check that repository has multiple contributors
-
Verify PR isn't from the only active developer
-
Configuration excludes everyone
- Review
.grooveassign.ymlconfiguration -
Check that filters aren't too restrictive
-
Timing issues
- grooveASSIGN only acts on PR creation, not updates
- Manual assignment before grooveASSIGN runs prevents auto-assignment
Solution:
- Close and reopen PR to trigger reassignment
- Manually assign using GitHub UI
- Review configuration file
Wrong reviewers assigned¶
Problem: grooveASSIGN assigned someone who doesn't know the code.
Understanding assignment logic:
grooveASSIGN uses line-level git blame to find developers who:
- Modified the most changed lines (weighted by recency)
- Are currently active (not on PTO/inactive >90 days)
- Are in the correct timezone (if timezone-aware enabled)
- Meet configured filters (team membership, etc.)
Common reasons for unexpected assignments:
- Developer recently refactored the file (blame shows them)
- Original author no longer with company (assigns current maintainer)
- Configuration prioritizes availability over expertise
To improve assignments:
- Configure
.grooveassign.ymlwith: - Team restrictions
- Exclusion patterns
-
Timezone preferences
-
Use CODEOWNERS as fallback
- Enable
prefer_codeowners: truein config
Assigning author¶
Problem: grooveASSIGN assigned PR author as reviewer.
Solution:
grooveASSIGN automatically excludes the PR author. If this happened:
- PR was created by bot/automation with different author metadata
- PR author changed after creation
- Bug in author detection
Workaround:
Add to .grooveassign.yml:
Not respecting CODEOWNERS¶
Problem: grooveASSIGN ignores CODEOWNERS file.
Explanation:
By default, grooveASSIGN uses git blame, not CODEOWNERS. This is intentional - blame finds who actually worked on code, not who "owns" it on paper.
To use CODEOWNERS:
Add to .grooveassign.yml:
This checks CODEOWNERS first, falls back to blame if no owners found.
Configuration¶
Configuration not being read¶
Problem: Changes to .grooveassign.yml have no effect.
Solution:
- Verify file location: Must be at repository root (not
.github/) - Check syntax: YAML is whitespace-sensitive
- Commit the file: Changes must be committed to default branch
- Wait for sync: Configuration updates on next PR (up to 5 minutes)
Tip
Create a test PR to verify configuration changes took effect.
Invalid configuration¶
Problem: grooveASSIGN shows configuration error.
Common syntax errors:
# ❌ Wrong: Using tabs instead of spaces
reviewers:
→→→count: 2
# ✅ Correct: Use spaces
reviewers:
count: 2
# ❌ Wrong: Missing quotes for special characters
exclude_patterns:
- *.md
# ✅ Correct: Quote glob patterns
exclude_patterns:
- "*.md"
Validate your config:
See Configuration Reference for all options.
Timezone detection not working¶
Problem: timezone_aware: true but assignments ignore timezones.
Requirements:
- User must have public activity on GitHub
- Activity must span multiple weeks
- User profile may optionally have location set
Limitations:
- New accounts (<3 months) may have insufficient data
- Users with sporadic activity get low-confidence detection
- VPN/proxy use can affect accuracy
Check detection:
Query the gitIDENTITY API:
If confidence < 0.5, timezone detection is unreliable for that user.
Workaround:
Manually configure timezones in .grooveassign.yml:
Performance¶
Slow PR assignment¶
Problem: grooveASSIGN takes >30 seconds to assign reviewers.
Causes:
- Large PR with many changed files (analyzing blame takes time)
- Repository with deep git history
- Complex configuration with many filters
Solutions:
- Reduce
reviewers.countin configuration - Exclude large generated files:
- Limit blame depth:
High API usage¶
Problem: Hitting GitHub API rate limits.
Cause:
grooveASSIGN analyzes git blame for every changed file. Large PRs or high PR volume can consume API quota.
Solutions:
- Increase rate limit: GitHub Apps get higher limits on paid plans
- Reduce scope: Only enable for important repositories
- Optimize config: Exclude files that don't need expert review:
Integration Issues¶
Conflicts with CODEOWNERS¶
Problem: GitHub automatically assigns from CODEOWNERS, grooveASSIGN then replaces them.
Solution:
Choose one approach:
Option 1: Use grooveASSIGN only - Remove or disable CODEOWNERS - Let grooveASSIGN handle all assignments
Option 2: Use CODEOWNERS primarily
Option 3: Combine both
prefer_codeowners: true
fallback_to_blame: true
reviewers:
count: 2 # Adds blame-based reviewers to CODEOWNERS
Conflicts with other reviewer bots¶
Problem: Multiple bots assigning different reviewers.
Solution:
Disable other reviewer assignment bots:
- GitHub's auto-assignment settings
- Danger/Peril reviewer rules
- Other GitHub Apps
Only one reviewer assignment system should be active per repository.
reviewGOOSE integration¶
Problem: grooveASSIGN assigned reviewers but reviewGOOSE notifications aren't working.
Solution:
Both apps work independently:
- grooveASSIGN: Assigns reviewers at PR creation
- reviewGOOSE: Notifies assigned reviewers to take action
If notifications failing:
- Verify both apps are installed
- Check reviewGOOSE troubleshooting
- Ensure assigned reviewers have GitHub accounts linked to Slack
Understanding Assignment Algorithm¶
How blame analysis works¶
grooveASSIGN:
- Gets list of changed files from PR
- For each file, runs
git blameon changed line ranges - Counts lines per author (weighted by commit recency)
- Applies filters (timezone, team, availability)
- Ranks authors by expertise score
- Assigns top N reviewers
Why blame instead of CODEOWNERS?¶
CODEOWNERS: Who should review (organizational policy) Blame: Who actually knows the code (practical expertise)
Example:
// File: src/auth.ts
// CODEOWNERS: @security-team (5 people)
// Blame: Alice (80%), Bob (15%), Carol (5%)
grooveASSIGN assigns Alice and Bob - they wrote most of the code and can review fastest.
Recency weighting¶
Recent commits count more than old ones:
- Commits in last 30 days: 100% weight
- Commits 30-90 days ago: 50% weight
- Commits >90 days ago: 25% weight
This ensures the current expert gets assigned, not the original author from 3 years ago.
Still Having Issues?¶
If your problem isn't listed here:
- Check GitHub Discussions
- Review Configuration Reference
- Contact Support
Include:
- PR URL if relevant
.grooveassign.ymlcontents- Expected vs actual reviewer assignment
- Repository size and activity level