Bitbucket Integration Troubleshooting
Error Tracking
When syncing entities from Bitbucket fails, the system tracks errors in the entity's git_integration field and displays them in the UI with a warning icon. Hovering over the icon shows the specific error details.
Error Types
The following error codes may be displayed:
| Error Code | HTTP Code | Description | Resolution |
|---|---|---|---|
INVALID_JSON | 400 | The JSON file contains invalid syntax | Fix JSON syntax errors in the file |
VALIDATION_FAILED | 400 | Required fields (name or slug) are missing | Add missing required fields to the entity |
EMPTY_DIRECTORY | 400 | Skill directory is empty or missing SKILL.md | Add SKILL.md file to the skill directory |
MISSING_INTEGRATION | 400 | Referenced integration doesn't exist in your organization | Add the integration or update the toolkit to use existing integrations |
MISSING_TOOL | 400 | Referenced tool doesn't exist in the integration | Check tool slugs match available tools in the integration |
FETCH_FAILED | 500 | Failed to fetch the file from Bitbucket | Check OAuth consumer permissions and repository access |
Error Resolution
Errors are automatically cleared when:
- The same entity file is successfully synced from Bitbucket
- You manually edit the entity in the admin panel (which triggers a new sync)
To view errors, look for the warning icon (⚠️) next to the entity name in the list view. Hover over it to see the error code and message.
Troubleshooting
Connection Test Fails
Error: "Connection test failed. Please verify your Workspace, Client ID, and Client Secret are correct."
- Verify the workspace slug matches exactly (case-sensitive)
- Ensure the OAuth consumer credentials (Key and Secret) are correct
- Check that the OAuth consumer has the required repository permissions
Webhook Not Working
Entities not syncing from Bitbucket to database
- Check webhook deliveries in your repository's webhook settings
- Look for failed webhook requests
- Verify the webhook URL is correct and accessible
- Check your application logs for webhook processing errors
- Ensure files are in the correct directories (
toolkits/,commands/,skills/, etc.)
Webhook signature validation fails
- Ensure the webhook secret matches exactly in both places
- Don't include extra spaces or newlines in the secret
Sync Failures
"Repository is empty" or "Branch not found"
- The repository might not have a default branch yet
- Create an initial commit (e.g., a README file) to initialize the repo
- Ensure you're using the default branch name (usually
mainormaster)
"Permission denied"
- Verify the OAuth consumer has
Repositories: Read and writepermission - Re-create the consumer and update your admin settings if permissions were changed
Entity shows error indicator
- Check for a warning icon (⚠️) next to the entity name in the list view
- Hover over the icon to see the specific error message
- See the Error Tracking section above for resolution steps
- Fix the issue in Bitbucket or the admin panel, then push/save to clear the error
"Sync successfully 0 entities" or nothing syncing
If the sync completes without errors but 0 entities are synced to Bitbucket, check:
-
Branch Protection Rules
- Bitbucket branch restrictions may be blocking commits
- Check your repository's branch restrictions settings
- Ensure the OAuth consumer is permitted to push, or disable restrictions temporarily
-
Network/Firewall Issues
- Your server may be unable to reach Bitbucket's API
- Check outbound network connectivity to
api.bitbucket.org - Verify firewall rules allow HTTPS traffic to Bitbucket
- Test with:
curl -I https://api.bitbucket.org
-
Repository State
- Ensure the repository has an initialized default branch
- Check that the branch name in your configuration matches the actual default branch
-
Entity Eligibility
- Only organization-level entities are synced to Bitbucket
- Check if you have any organization-level entities in your database
- User-specific or private entities are intentionally excluded from sync
- MCP Clients do not have an
owner_idfield and are always synced
Security Best Practices
-
OAuth Consumer Credentials
- Never commit the Client Secret to version control
- Store it securely (encrypted environment variables or secrets manager)
- Rotate credentials if they are ever exposed
-
Webhook Secrets
- Always use webhook secrets in production
- Use a cryptographically secure random string
- Rotate secrets if they're ever exposed
-
Repository Permissions
- Grant the OAuth consumer access only to the configuration repository
- Review consumer permissions regularly
-
Sensitive Data Handling
- MCP Server auth credentials (API keys, secrets, OAuth) are automatically excluded from sync
- Never manually add sensitive data to your Bitbucket repository
- Use your database/admin panel for managing authentication settings
-
Monitor Access
- Regularly review OAuth consumer usage in your workspace settings
- Check webhook delivery logs for suspicious activity
- Audit configuration changes through Git history