Troubleshooting
Common issues and solutions when using UnfoldCI.
Installation Issues
GitHub App Installation Failed
Problem: Error during GitHub App installation.
Solutions:
- Verify you have admin access to the repository or organization
- Check organization settings allow GitHub Apps
- Try installing on a personal repository first
- Clear browser cache and try again
Repositories Not Showing in Dashboard
Problem: Dashboard shows no repositories after installation.
Solutions:
- Click the Sync Repos button in the dashboard
- Verify installation at GitHub Settings → Applications
- Ensure at least one repository is selected in the installation
- Wait up to 30 seconds for initial sync
Can't Access Dashboard
Problem: Unable to login to app.unfoldci.com.
Solutions:
- Use "Sign in with GitHub" (the GitHub App must be installed first)
- If redirected to install, complete the installation process
- Clear cookies for app.unfoldci.com
- Try incognito/private browsing mode
Workflow Issues
No Test Results Found
Problem: Action logs show "No test result files found".
Solutions:
-
Most frameworks work automatically! UnfoldCI auto-detects JUnit XML from 25+ common locations (Jest, pytest, Vitest, Go, Maven, Gradle, Mocha, PHPUnit, xUnit, etc.)
-
Check the action logs—they show helpful tips for configuring your specific framework
-
If using a non-standard location, specify it:
with:
results-path: 'my-custom-path/**/*.xml' -
Add a debug step to list files:
- name: Debug test files
run: |
echo "Looking for XML files:"
find . -name "*.xml" -type f | grep -v node_modules -
Ensure tests run before the UnfoldCI action
API Key Not Working
Problem: Action logs show authentication errors.
Solutions:
- Verify the secret name is exactly
FLAKY_AUTOPILOT_KEY - Check the secret exists in repository settings
- Regenerate the API key from the dashboard
- Ensure no extra whitespace in the secret value
Tests Not Appearing in Dashboard
Problem: Workflow succeeds but no data in dashboard.
Solutions:
- Verify the action completed successfully (check logs)
- Confirm test result files exist and contain valid XML
- Check the action outputs for any warnings
- Refresh the dashboard page
Notification Issues
Slack Notifications Not Arriving
Problem: Configured Slack but no notifications appear.
Solutions:
- Verify the webhook URL is correct and complete
- Test the connection using the Send button in settings
- Check the Slack channel still exists
- Verify the webhook hasn't been deleted from Slack settings
- Ensure notification events are enabled
Discord Webhook Invalid Error
Problem: "Invalid Discord webhook URL format" error.
Solutions:
- Ensure the URL matches the format:
https://discord.com/api/webhooks/ID/TOKEN - Legacy
discordapp.comURLs are also supported - Copy the full URL without extra characters
- Regenerate the webhook in Discord if needed
Teams Notifications Failing
Problem: Microsoft Teams notifications not working.
Solutions:
- Verify the webhook URL contains
webhook.office.com - Check the connector is still active in Teams
- Ensure the channel permissions allow incoming webhooks
- Test with a simpler webhook first
Duplicate Notifications
Problem: Receiving multiple notifications for the same event.
Solutions:
- Check if multiple installations have the same webhook
- Verify only one set of credentials is configured
- Review enabled events for duplicates
Test Result Issues
Tests Showing Wrong File Path
Problem: Test file paths don't match your repository structure.
Solutions:
The action attempts to extract file paths from JUnit XML. If paths are incorrect:
-
Configure your test framework to include file paths:
Jest — Use
--testLocationInResultsflagpytest — Paths are automatically included
-
Create
.flaky-autopilot.jsonwith path aliases if using custom imports
Code Hash Not Calculating
Problem: Tests don't show code change detection.
Solutions:
- Ensure test files exist in the repository
- Check import paths are resolvable
- Add
.flaky-autopilot.jsonwith correct aliases:
{
"importResolver": {
"aliases": {
"@": "./src"
}
}
}
Flake Detection Issues
No Flaky Tests Detected
Problem: Known flaky tests not being flagged.
Solutions:
- Flake detection requires 5+ test runs minimum
- Verify tests are actually failing intermittently (not consistently)
- Check test details in dashboard for run history
- Wait for more CI runs to gather data
PR Not Created for Flaky Test
Problem: Flaky test detected but no fix PR generated.
Reasons:
- AI confidence below threshold
- Root cause analysis still in progress
- Similar PR already exists
- Test was recently analyzed
Solutions:
- Check test details page for analysis status
- Click "Reanalyze" to trigger fresh analysis
- Review existing PRs in the repository
Dashboard Issues
Data Not Updating
Problem: Dashboard shows stale data.
Solutions:
- Hard refresh the page (Ctrl+Shift+R or Cmd+Shift+R)
- Click "Sync Repos" button
- Verify recent workflow runs completed successfully
- Check browser console for errors
Settings Page Shows No Installation
Problem: Settings page says "No Installation Found".
Solutions:
- Verify the GitHub App is installed
- Click "Sync Repos" on the main dashboard
- Sign out and sign back in
- Reinstall the GitHub App if necessary
CI Savings Not Showing
Problem: CI Savings card shows zero or no data.
Solutions:
- Ensure you have at least 10 test runs recorded
- Wait for flaky tests to be detected and fixed
- Savings accumulate over time based on actual reruns avoided
Pattern Analysis Empty
Problem: Pattern Analysis section shows no data.
Solutions:
- Verify the repository has test files
- Check that test files are accessible (not in .gitignore)
- Pattern analysis runs on first test result submission
- Click "Reanalyze" on the repository page
Common Error Messages
"No test result files found"
Problem: Action logs show no XML files were found.
Solutions:
-
Most common: UnfoldCI auto-detects JUnit XML from 25+ common locations. If your tests output to a non-standard location, specify it:
with:
results-path: 'my-custom-path/**/*.xml' -
Verify your tests actually output JUnit XML format (see Configuration for framework-specific setup)
-
Check the action logs—they show helpful tips for your specific framework
"Usage limit exceeded"
Solution: Check your plan limits in the dashboard. The workflow will continue normally.
"API error"
Solution: Transient issue. The workflow continues without blocking. Check logs for details.
"Invalid webhook URL format"
Solution: Verify the webhook URL format matches the expected pattern for the platform:
- Slack:
https://hooks.slack.com/services/... - Discord:
https://discord.com/api/webhooks/... - Teams: Contains
webhook.office.com
Debugging Tips
Enable Verbose Logging
Add debug steps to your workflow:
- name: Debug environment
run: |
echo "Repository: ${{ github.repository }}"
echo "Commit: ${{ github.sha }}"
echo "Branch: ${{ github.ref_name }}"
- name: List test files
run: find . -name "*.xml" -type f | head -20
- name: Show test file content
run: head -50 test-results/junit.xml || echo "File not found"
Check Action Outputs
- name: Analyze Flaky Tests
id: flaky
uses: UnfoldAI-Labs/UnfoldCI-flaky-autopilot-action@v1
# ...
- name: Debug outputs
if: always()
run: |
echo "Status: ${{ steps.flaky.outputs.status }}"
echo "Tests: ${{ steps.flaky.outputs.tests_analyzed }}"
echo "Flaky: ${{ steps.flaky.outputs.flakes_detected }}"
Getting Help
If you're still experiencing issues:
- Check the GitHub Action logs for detailed error messages
- Review your workflow configuration against the Quick Start Guide
- Visit the dashboard to verify installation status
Information to Gather
When seeking help, prepare:
- Workflow file contents
- Action log output
- Dashboard screenshot
- Repository name (if shareable)
- Error messages
Repository Visibility Issues
Can't See My Repositories
Problem: Expected repositories not showing in dashboard.
Solutions:
-
Check Installation Scope: Repositories only appear if the GitHub App is installed where they exist:
- Personal repos → Install app on your personal account
- Org repos → Install app on that organization
-
Verify Repository Access:
- Go to GitHub Settings → Applications
- Click "Configure" next to UnfoldCI
- Verify the repositories are selected
-
Click Sync Repos in the dashboard to refresh
Only See Organization Repos (Not Personal)
Problem: Dashboard shows org repos but not personal repos.
Solution: The app is only installed on your organization, not your personal account. To see personal repos:
- Visit github.com/apps/unfoldci-flaky-test-autopilot
- Click "Install"
- Select your personal account
- Choose which personal repos to monitor
Only See Personal Repos (Not Organization)
Problem: Dashboard shows personal repos but not org repos.
Solution: Install the app on your organization:
- Visit github.com/apps/unfoldci-flaky-test-autopilot
- Click "Install"
- Select your organization
- Choose which org repos to monitor
You can have the app installed on multiple accounts (personal + multiple orgs). Each installation appears unified in your dashboard.
Authentication Issues
Error 403 on Dashboard
Problem: Getting "403 Forbidden" when accessing the dashboard.
Causes:
- Your GitHub App installation was removed/reinstalled
- Session token is linked to an old installation ID
- Your account or installation was suspended
Solutions:
- Clear Session: Navigate to
app.unfoldci.com/signout - Force Re-login: Navigate to
app.unfoldci.com/signin?force=true - Sign in again with GitHub
Stuck on Sign-In Page
Problem: Sign-in page redirects back to itself or shows errors.
Solutions:
- Clear browser cookies for
app.unfoldci.com - Navigate to
app.unfoldci.com/signoutfirst - Then go to
app.unfoldci.com/signin - Try incognito/private browsing mode
Session Expired After Reinstalling App
Problem: Deleted and reinstalled the GitHub App, now can't access dashboard.
Explanation: When you reinstall the app, you get a new installation_id. Your browser has an old session token.
Solution:
- Go to
app.unfoldci.com/signout - Sign in again with GitHub
- A new session will be created with your new installation
Can't Sign In on Mobile
Problem: Desktop works but mobile shows 403 error.
Explanation: Each browser/device has its own session. Mobile may have stale credentials.
Solution: On your mobile browser:
- Clear site data for
app.unfoldci.com - Navigate to
app.unfoldci.com/signin?force=true - Sign in with GitHub
Tests Pass Locally But Fail in CI
This is exactly the type of issue UnfoldCI helps detect and fix!
Common Causes
| Cause | Symptoms | Solution |
|---|---|---|
| Timing Issues | Tests fail randomly, often in setTimeout/async code | Add proper awaits, increase timeouts |
| Race Conditions | Different failure messages each run | Add synchronization, use locks |
| Environment Differences | Missing env vars, different OS paths | Match CI environment locally |
| Network Flakiness | External API call failures | Mock external services in tests |
| Resource Exhaustion | "Out of memory" or slow tests | Run tests in isolation, clean up after tests |
| Timezone/Locale | Date/time assertions fail | Use UTC, mock time |
| Parallel Test Interference | Tests pass alone, fail in parallel | Don't share global state |
UnfoldCI Helps
Once UnfoldCI detects these patterns:
- Dashboard shows which tests are flaky with failure patterns
- AI Analysis identifies the root cause category
- Automatic PRs suggest fixes based on detected patterns
FAQ
Q: Does UnfoldCI need any special GitHub permissions?
A: No! UnfoldCI only needs read access to your test result files. The GitHub App handles all repository interactions (creating fix PRs, etc.) using its own authentication.
Q: Why does my CI show green even when tests fail?
A: If you're using continue-on-error: true on your test step, CI will always pass. This is useful for UnfoldCI analysis but can hide failures.
For accurate CI status, either:
- Remove
continue-on-errorand useif: always()on the UnfoldCI step - Add a final "check results" step (see Configuration Guide)
Q: How many test runs are needed for flake detection?
A: Minimum 5 runs. Detection improves with more data.
Q: Can I use UnfoldCI with private repositories?
A: Yes. The GitHub App supports private repositories.
Q: What happens if the API is unavailable?
A: The action logs a warning and completes successfully. Your CI pipeline is never blocked.
Q: Are my test results stored?
A: Yes, test outcomes are stored for flake analysis. Source code is not stored.
Q: Can I adjust flake detection sensitivity?
A: Detection thresholds are automatically calibrated based on your test patterns.
Q: How are CI savings calculated?
A: Based on average test duration, flaky test frequency, and estimated rerun costs.
Q: Can I use multiple notification platforms?
A: Yes. Configure Slack, Discord, and Teams simultaneously if desired.
Q: Are notifications sent for all repositories?
A: Yes, notification settings apply to all repositories in your GitHub App installation.
Q: Why do I see repos from multiple organizations?
A: The dashboard shows all repos from all your GitHub App installations. If you've installed UnfoldCI on your personal account AND your organization, you'll see repos from both.
Q: Do team members see the same data?
A: Yes. All members of an organization can see that organization's repository data when they sign in with their GitHub accounts.
Q: Do I need a separate API key for each organization?
A: Yes. Each GitHub App installation (personal or org) has its own API key. Generate keys in Settings for each installation.
Q: Why didn't I get a PR after AI analysis completed?
A: PRs are only created when certain conditions are met:
- High-confidence categories (missing await, timeout issues, browser timing) always get PRs if confidence ≥ 70%
- Medium-confidence categories (network issues, timing dependencies) need confidence ≥ 85%
- Low-confidence categories (race conditions, complex state issues) receive analysis only—no automatic PR
- Tests must have a pass rate between 5-95% (not consistently failing or stable)
Q: My test stopped getting PRs after 3 attempts. Why?
A: UnfoldCI limits automatic fix attempts to 3 PRs per test to prevent spam. If the first 3 fixes didn't resolve the flakiness, the issue likely requires manual investigation. You can:
- Review the AI analysis in the dashboard for insights
- Examine why previous PRs didn't work
- Manually implement a fix based on the root cause analysis
Q: Why is there a 24-hour delay between PR creations?
A: After creating a PR for a flaky test, UnfoldCI waits 24 hours before generating another PR for the same test. This gives you time to:
- Review and merge the PR
- Run CI to verify the fix works
- See if the test stabilizes
This prevents PR spam if tests remain flaky after an initial fix attempt.