Troubleshooting Bulk Catalog Ingestion
This guide covers common issues you might encounter when using bulk catalog ingestion and how to resolve them.
No Organizations Appear
Symptom: The organization selector is empty or missing expected items.
Common causes:
- Provider credentials expired or lack permissions
- Provider not properly configured in Portal
- Network connectivity issues
Solutions:
GitHub
-
Verify GitHub App installation:
- Check if your Portal GitHub App is installed for the organization
- Ensure the installation hasn't been suspended or revoked
-
Check App permissions:
- Ensure App has "Metadata: Read" permission minimum
- For YAML mode, verify "Contents: Write" and "Pull Requests: Write"
-
Contact your Portal administrator to verify backend configuration
GitLab
-
Verify token permissions:
- Check token has "read_api" scope minimum
- Verify token hasn't expired
- For YAML mode, ensure "api" scope is included
-
Check group access:
- Verify user associated with token has access to the group
- For private groups, ensure user is a member
-
Contact your Portal administrator to verify backend configuration
Azure DevOps
-
Verify PAT permissions:
- Check PAT has "Project and Team (Read)" scope
- Verify PAT hasn't expired
- For YAML mode, ensure "Code (Read & Write)" scope
-
Check organization URL:
- Verify Portal configuration uses correct org URL
- Format should be
https://dev.azure.com/{organization}
-
Contact your Portal administrator to verify backend configuration
No Repositories Appear
Symptom: Selected organization but no repositories show up.
Common causes:
- Organization has no repositories
- Repositories are private and credentials lack access
- Repositories already registered in catalog
Solutions:
-
Verify repositories exist:
- Check the organization on your source control platform
- Ensure repositories aren't empty or archived
-
Check access permissions:
- Verify your provider credentials have repository read access
- For private repositories, ensure proper permissions are granted
-
Check for duplicates:
- Repositories already registered may not appear
- Try searching the catalog for these repositories first
Pull Requests Not Created
Symptom: Completed ingestion in YAML mode but no Pull Requests/Merge Requests appeared in repositories.
Common causes:
- Credentials lack write permissions
- Repository is archived or read-only
- Branch protection blocks automated commits
Solutions:
-
Verify write permissions:
- GitHub: App needs "Contents: Write" and "Pull Requests: Write"
- GitLab: Token needs "api" scope
- Azure DevOps: PAT needs "Code (Read & Write)"
-
Check repository status:
- Ensure repository isn't archived
- Verify repository allows writes
-
Review branch protection:
- Check if branch protection rules block the Portal from creating Pull Requests
- Contact your repository admin to allow Portal App commits
-
Contact your Portal administrator if issues persist
Entities Don't Appear in Catalog
Symptom: Merged Pull Request/completed ingestion but entities still don't appear in catalog.
Common causes:
- Catalog processing still in progress
- YAML validation errors
- Missing required entity fields
Solutions:
-
Wait for processing:
- Initial processing can take 1-5 minutes
- Refresh the catalog page and check again
-
Check for validation errors:
- Navigate to Catalog Settings in Portal
- Look for processing errors or warnings
- Review error messages for specific issues
-
Verify required fields:
- Ensure
catalog-info.yamlincludes all required fields:apiVersion: backstage.io/v1alpha1kind: Componentmetadata.namespec.typespec.lifecyclespec.owner
- Ensure
Invalid YAML Errors
Symptom: Catalog Settings shows "Invalid YAML" for your catalog-info.yaml file.
Common syntax errors:
Indentation Issues
# ❌ Wrong
metadata:
name: my-service
# ✅ Correct
metadata:
name: my-service
Missing Required Fields
# ❌ Wrong - missing owner
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: my-service
spec:
type: service
lifecycle: production
# ✅ Correct
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: my-service
spec:
type: service
lifecycle: production
owner: platform-team
Solutions:
-
Use a YAML validator:
- Copy your YAML to yamllint.com
- Check for syntax errors before committing
-
Copy from a working example:
- Find a similar entity in your catalog
- View its
catalog-info.yamland use it as a template
Owner Not Found
Symptom: Entity created but shows "Owner: unknown" or error about invalid owner reference.
Common causes:
- Owner team/user doesn't exist in catalog
- Owner name doesn't match catalog entity format
Solutions:
-
Ensure owner entity exists:
- For teams, check that a Group entity exists in the catalog
- For users, check that a User entity exists
-
Match entity name format:
- Use lowercase with hyphens
- Example: "Platform Team" should be
platform-team
-
Use correct owner reference format:
spec:
owner: group:default/platform-team # Full reference
# or
owner: platform-team # Short form (assumes group kind)
Getting Help
If you've tried these solutions and still have issues:
- Check Catalog Settings for specific error messages
- Contact your Portal administrator with:
- Error messages from Catalog Settings
- Steps to reproduce the issue
- Which provider you're using (GitHub/GitLab/Azure DevOps)
- Which management mode you selected (Portal vs YAML)