Troubleshooting¶
Common issues and solutions for GitHub Core App configuration.
App Installation Issues¶
Symptom
Cannot install app on organization
Checks
- Verify organization owner role
- Check organization permissions allow app installation
- Review organization security settings
Solution¶
If not admin, request organization owner access.
Permission Denied¶
Symptom
Workflows fail with 403 Forbidden
Checks
- Verify app has required permissions in settings
- Check app is installed on target repositories
- Confirm organization secrets are accessible
Solution¶
# Debug token permissions
- name: Check token scope
run: |
gh api /rate_limit --jq '.resources'
gh api /installation/repositories --jq '.total_count'
env:
GH_TOKEN: ${{ steps.token.outputs.token }}
Team Query Returns Null¶
Symptom
GraphQL query for team repositories returns "team": null
Checks
- Verify "Members" organization permission is granted
- Confirm app is installed at organization level
- Check team exists and has repositories
Solution¶
# Test query
{
organization(login: "{ORG}") {
team(slug: "{TEAM}") {
name
repositories(first: 5) {
totalCount
}
}
}
}
If team is null, add Members: Read permission to the app.
Token Generation Fails¶
Symptom
actions/create-github-app-token fails with authentication error
Checks
- Verify
CORE_APP_IDis numeric (not quoted string) - Verify
CORE_APP_PRIVATE_KEYincludes full PEM content - Check private key hasn't expired or been revoked
Solution¶
- name: Generate token with debug
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.CORE_APP_ID }}
private-key: ${{ secrets.CORE_APP_PRIVATE_KEY }}
env:
# Enable debug logging
ACTIONS_STEP_DEBUG: true
Rate Limiting¶
Symptom
API calls fail with 403 rate limit exceeded
Checks
- Check current rate limit status
- Review workflow for excessive API calls
- Consider implementing request batching
Solution¶
# Check rate limits
gh api /rate_limit --jq '.rate'
# Response shows:
# {
# "limit": 5000,
# "remaining": 100,
# "reset": 1234567890
# }
Repository Not Accessible¶
Symptom
App can't access specific repository
Checks
- Verify repository is included in app installation
- Check repository visibility (private/internal/public)
- Confirm app installation scope
Solution¶
# List repositories app can access
gh api /installation/repositories --jq '.repositories[].full_name'
If repository missing, update app installation to include it.
Debug Checklist¶
- [ ] App ID is correct (check app settings page)
- [ ] Private key is complete (includes BEGIN/END lines)
- [ ] Private key is not expired
- [ ] App is installed on organization
- [ ] App has required permissions
- [ ] Secrets are accessible to workflow
- [ ] Repository is in app's installation scope
Getting Help¶
If issues persist:
- Check GitHub App documentation
- Review GitHub Actions logs
- Enable debug logging:
ACTIONS_STEP_DEBUG: true