Troubleshooting
PR Generation Issues
PR Has Merge Conflicts
The generated PR has conflicts with the target branch.
Solutions:
- Click Regenerate on the stale flag row to create a fresh PR
- Pull the branch and resolve conflicts manually:
git checkout janitor/remove-{flag-key}git merge main# Resolve conflictsgit push
- If the flag has changed significantly, dismiss it and re-scan
LLM Analysis Returned Low Confidence
The AI is unsure about safely removing this flag.
Why this happens:
- Complex nested conditionals (3+ levels deep)
- Dynamic flag references (e.g.,
isEnabled(variableName)) - Flag used in test assertions
- Unusual language patterns
Solutions:
- Review the analysis notes for specific concerns
- Manually inspect the flagged references
- Consider refactoring the flag usage to be more analyzable
- Dismiss if you've confirmed it's safe manually
Connection Issues
Repository Not Found
Causes:
- Token doesn't have access to the repository
- Repository was renamed or deleted
- Organization access not granted
Solutions:
- Verify the token has access to the repository
- Reconnect the provider in Settings → Integrations
- Check that the repository exists and is accessible
Token Expired
Solution: Reconnect the provider in Settings → Integrations
LLM Provider Unavailable
Causes:
- API key expired or invalid
- Rate limit exceeded
- Provider outage
Solutions:
- Check your API key in Settings → Integrations → LLM Provider
- Wait for rate limit to reset (typically 1 minute)
- The system will automatically fall back to regex analysis
Analysis Issues
Flag is Referenced in Unexpected Ways
Examples:
- Dynamic key construction:
isEnabled("prefix-" + flagName) - String interpolation in templates:
`${isEnabled("flag") ? A : B}` - Flag stored in a variable:
const isEnabled = boolVariation("flag", user)
Solutions:
- The LLM can handle many of these cases — review the analysis
- If the LLM also misses it, manually inspect the code
- Consider standardizing flag usage patterns across your codebase
Generated PR Breaks Tests
Causes:
- Test files reference the removed flag
- The removed conditional had side effects
Solutions:
- Check if test files were correctly updated
- Review the diff for any missed references
- Manually fix the test assertions
- Update the test to not depend on the removed flag
Compliance Issues
LLM Processing Disabled by Policy
Your organization's compliance policy has disabled LLM processing.
What happens:
- The Janitor falls back to regex-based analysis
- Analysis confidence is lower (35%)
- PRs include "Manual Review Required" warnings
To enable LLM:
- Go to Settings → Integrations → Compliance
- Set mode to Approved or Strict
- Configure approved providers
Data Masking is Blocking Analysis
Redaction rules are too aggressive and are redacting valid code patterns.
Solutions:
- Review your redaction rules in Compliance settings
- Disable specific rules that are too broad
- Use more specific regex patterns
Getting Help
If you're still having issues:
- Check the AI Janitor documentation
- Contact support at support@featuresignals.com
- Join our Slack community for real-time help