This comprehensive guide helps you diagnose and resolve common issues with reviewtask.
Start troubleshooting with these diagnostic commands:
# Check version and system info
reviewtask version
# Verify authentication
reviewtask auth status
reviewtask auth check
# Test basic functionality
reviewtask show
reviewtask statusSymptoms:
- "Authentication failed" errors
- "Invalid token" messages
- 401 Unauthorized errors
Solutions:
-
Check token validity:
reviewtask auth check
-
Verify token hasn't expired:
- Check GitHub Settings > Developer settings > Personal access tokens
- Look for expiration date and token status
-
Ensure correct scopes:
- Private repos: Requires
reposcope - Public repos: Requires
public_reposcope - Organization repos: Requires
read:orgscope
- Private repos: Requires
-
Re-authenticate:
reviewtask auth logout reviewtask auth login
Symptoms:
- "Repository not found" errors
- "Access denied" when fetching PR data
- 403 Forbidden errors
Solutions:
-
For private repositories:
# Ensure token has 'repo' scope reviewtask auth check -
For organization repositories:
# Ensure token has 'read:org' scope # Check organization's third-party access settings
-
Verify repository URL:
git remote -v # Ensure you're in the correct repository
Symptoms:
- Confusion about which token is being used
- Inconsistent authentication behavior
Diagnosis:
reviewtask auth statusPriority order:
GITHUB_TOKENenvironment variable (highest)- Local config file (
.pr-review/auth.json) - GitHub CLI (
gh auth token) (lowest)
Solutions:
# Use specific source
export GITHUB_TOKEN="your_token" # Environment variable
# Or remove conflicting sources
reviewtask auth logout # Remove local config
unset GITHUB_TOKEN # Remove environment variableSymptoms:
- "Rate limit exceeded" errors
- Slow or failing API requests
- 429 Too Many Requests errors
Check current status:
reviewtask auth checkRate limits:
- Authenticated: 5,000 requests/hour
- Unauthenticated: 60 requests/hour
Solutions:
-
Ensure authentication:
reviewtask auth status
-
Use caching:
# Avoid --refresh-cache unless necessary reviewtask # Uses cached data when possible
-
Wait for reset:
- Rate limits reset every hour
- Check
X-RateLimit-Resettime in auth check output
Symptoms:
- "command not found: reviewtask"
- "reviewtask: command not found"
Solutions:
-
Check installation:
which reviewtask # Should show path to binary -
Verify PATH:
echo $PATH # Should include installation directory
-
Add to PATH:
# For bash/zsh export PATH="$HOME/.local/bin:$PATH" # For fish set -gx PATH $HOME/.local/bin $PATH
-
Reinstall:
curl -fsSL https://raw.githubusercontent.com/biwakonbu/reviewtask/main/scripts/install/install.sh | bash -s -- --force
Symptoms:
- Old version behavior
- Missing features
- Update failures
Solutions:
-
Check current version:
reviewtask version
-
Update to latest:
reviewtask version latest
-
Manual reinstall:
curl -fsSL https://raw.githubusercontent.com/biwakonbu/reviewtask/main/scripts/install/install.sh | bash -s -- --force
Symptoms:
- No tasks generated from PR reviews
- Empty task lists despite review comments
Diagnosis:
# Enable verbose mode
# Edit .pr-review/config.json:
{
"ai_settings": {
"verbose_mode": true
}
}
# Test specific phases
reviewtask debug fetch review 123
reviewtask debug fetch task 123Solutions:
-
Force refresh:
reviewtask --refresh-cache
-
Check AI provider:
claude --version # For Claude Code -
Verify PR has reviews:
# Check on GitHub that PR actually has review comments
Symptoms:
- Tasks appear and disappear
- Duplicate tasks
- Incorrect task content
Solutions:
-
Clear cache:
reviewtask --refresh-cache
-
Check comment changes:
- Tasks are cancelled when comments change significantly
- New tasks created for new/updated comments
-
Adjust deduplication:
{ "ai_settings": { "deduplication_enabled": false, "similarity_threshold": 0.7 } }
Symptoms:
- Task statuses reset unexpectedly
- Cannot update task status
- Status changes not persisting
Solutions:
-
Check task ID:
reviewtask show # Get correct task UUID -
Verify file permissions:
ls -la .pr-review/ # Ensure write permissions on task files -
Manual status check:
cat .pr-review/PR-*/tasks.json # Inspect task file directly
Symptoms:
- "claude command not found"
- AI analysis failures
- Empty or malformed task generation
Solutions:
-
Verify installation:
claude --version which claude
-
Check PATH:
echo $PATH | grep -o '[^:]*claude[^:]*'
-
Install Claude Code: Follow official installation instructions
-
Test Claude integration:
reviewtask prompt claude pr-review
Symptoms:
- "unexpected end of JSON input" errors
- Truncated responses
- Malformed task data
Solutions:
-
Enable recovery:
{ "ai_settings": { "enable_json_recovery": true, "max_recovery_attempts": 3, "log_truncated_responses": true } } -
Reduce prompt size:
{ "ai_settings": { "validation_enabled": true, "max_retries": 5 } } -
Check response analytics:
cat .pr-review/response_analytics.json
Symptoms:
- Outdated task content
- Missing new comments
- Inconsistent behavior
Solutions:
-
Force refresh:
reviewtask --refresh-cache
-
Clear cache manually:
rm -rf .pr-review/cache/ reviewtask
-
Check cache permissions:
ls -la .pr-review/cache/
Symptoms:
- Slow processing
- Timeouts
- High memory usage
Solutions:
-
Check PR size:
reviewtask stats --pr 123
-
Enable optimization:
- Tool automatically optimizes for large PRs
- Uses parallel processing and chunking
-
Reduce processing load:
{ "ai_settings": { "validation_enabled": false, "deduplication_enabled": false } }
Symptoms:
- Tool ignores configuration changes
- Default behavior instead of custom settings
- JSON parsing errors
Solutions:
-
Validate JSON syntax:
cat .pr-review/config.json | jq .
-
Reset to defaults:
reviewtask init # Recreates default config -
Check file permissions:
ls -la .pr-review/config.json
Symptoms:
- All tasks get same priority
- Priority rules not working
- Unexpected priority assignments
Solutions:
-
Enable verbose mode:
{ "ai_settings": { "verbose_mode": true } } -
Review priority rules:
{ "priority_rules": { "critical": "Security vulnerabilities, authentication bypasses", "high": "Performance bottlenecks, memory leaks", "medium": "Functional bugs, logic improvements", "low": "Code style, naming conventions" } } -
Test with simple rules:
- Start with clear, distinct priority descriptions
- Add complexity gradually
Symptoms:
- Connection timeouts
- Intermittent failures
- "Network unreachable" errors
Solutions:
-
Check GitHub status:
- Visit GitHub Status
- Verify GitHub API is operational
-
Test connectivity:
curl -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/user -
Use retry logic:
- Tool includes automatic retry for transient failures
- Enable verbose mode to see retry attempts
Symptoms:
- Connection failures in corporate environments
- SSL certificate errors
- Blocked requests
Solutions:
-
Configure proxy:
export HTTPS_PROXY=https://proxy.company.com:8080 export HTTP_PROXY=http://proxy.company.com:8080
-
Check firewall rules:
- Ensure access to api.github.com
- Verify HTTPS (443) is allowed
For detailed troubleshooting, enable verbose mode:
{
"ai_settings": {
"verbose_mode": true,
"log_truncated_responses": true
}
}Test specific functionality:
# Test review fetching only
reviewtask debug fetch review 123
# Test task generation only
reviewtask debug fetch task 123
# Both commands enable verbose mode automaticallyCheck log output for:
- API request/response details
- Task generation process
- Error messages and stack traces
- Performance metrics
- ✅ Authentication working?
reviewtask auth check - ✅ Latest version?
reviewtask version - ✅ Valid configuration?
cat .pr-review/config.json | jq . - ✅ AI provider available?
claude --version - ✅ Repository access? Can you see PR on GitHub?
- ✅ Cache cleared? Try
reviewtask --refresh-cache
Open a GitHub issue if:
- Self-diagnosis doesn't resolve the issue
- You encounter unexpected behavior
- You have feature requests or suggestions
- Documentation is unclear or incomplete
When reporting issues, include:
**Environment:**
- reviewtask version: `reviewtask version`
- Operating system:
- AI provider: Claude Code version X.X.X
**Problem:**
- Clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
**Logs:**
- Enable verbose mode and include relevant log output
- Sanitize any sensitive information (tokens, private repo names)
**Configuration:**
- Include .pr-review/config.json (sanitized)
- Mention any custom settings
For more help: