Introduction
The TestUC3003 – Catalog Already Exists error in Databricks Unity Catalog occurs when attempting to create a catalog that already exists. This may happen due to name conflicts, improper catalog deletion, or concurrent creation attempts. The error prevents you from creating a new catalog with the same name and may disrupt your data management processes.
🚨 Common symptoms of TestUC3003:
- Error: “TestUC3003 – Catalog Already Exists” when creating a catalog.
- Cannot recreate a catalog after deletion.
- Conflicts with existing catalog names in different metastore configurations.
Common Causes and Fixes for TestUC3003
1. Catalog Name Conflict
Symptoms:
- Error: “Catalog Already Exists” when running the
CREATE CATALOG
command. - Cannot create a new catalog with the desired name.
Causes:
- A catalog with the same name already exists in the metastore.
- Previous catalog creation did not complete properly, leaving partial metadata.
Fix:
✅ List all catalogs to confirm the existing catalog name:
SHOW CATALOGS;
✅ If the catalog exists, use it instead of creating a new one:
USE CATALOG my_catalog;
✅ If the catalog does not exist in the list, check for hidden metadata:
databricks unity-catalog metastores list-catalogs
2. Catalog Was Not Fully Deleted
Symptoms:
- Error: “Catalog Already Exists” after attempting to recreate a deleted catalog.
- SHOW CATALOGS does not list the catalog, but creation fails.
Causes:
- Partial deletion left orphaned metadata in Unity Catalog.
- Concurrency issues caused incomplete deletion.
Fix:
✅ Check for incomplete metadata in the metastore:
DESCRIBE CATALOG my_catalog;
✅ Force delete the catalog if metadata exists:
DROP CATALOG my_catalog CASCADE;
✅ Wait for a few minutes and retry catalog creation:
CREATE CATALOG my_catalog;
3. Concurrent Catalog Creation Attempts
Symptoms:
- Error: “Catalog Already Exists” when multiple users or scripts attempt to create the same catalog simultaneously.
- Catalog creation is blocked due to a conflict.
Causes:
- Concurrent processes attempt to create the same catalog.
- Race conditions in catalog creation operations.
Fix:
✅ Coordinate catalog creation across teams to avoid simultaneous requests.
✅ Implement locks or check for catalog existence before creation:
IF NOT EXISTS (SELECT * FROM information_schema.catalogs WHERE catalog_name = 'my_catalog') THEN
CREATE CATALOG my_catalog;
END IF;
4. Multiple Metastore Configurations
Symptoms:
- Catalog already exists in a different metastore, but cannot be reused in the current workspace.
- SHOW CATALOGS does not return the catalog in the current metastore.
Causes:
- Multiple metastores are configured for different workspaces.
- Catalogs are not shared across metastores.
Fix:
✅ Check the metastore configuration:
SHOW METASTORES;
✅ Ensure you are using the correct metastore:
USE METASTORE my_metastore;
✅ Migrate the catalog to the desired metastore if necessary:
databricks unity-catalog catalogs migrate --source-metastore <source-id> --target-metastore <target-id>
Step-by-Step Troubleshooting Guide
1. Verify If the Catalog Exists
SHOW CATALOGS;
2. Check for Metadata or Incomplete Deletion
DESCRIBE CATALOG my_catalog;
3. Check Metastore Assignment and Conflicts
SHOW METASTORES;
4. Retry Catalog Creation
CREATE CATALOG my_catalog;
Best Practices to Avoid TestUC3003 – Catalog Already Exists
✅ Use Unique and Descriptive Catalog Names
- Avoid using generic names that are prone to conflicts.
✅ Check for Catalog Existence Before Creation
- Use conditional logic to avoid redundant catalog creation.
✅ Coordinate Catalog Management Across Teams
- Prevent multiple users from creating the same catalog simultaneously.
✅ Monitor and Clean Up Incomplete Metadata
- Regularly check and clean up orphaned metadata.
Conclusion
The TestUC3003 – Catalog Already Exists error in Databricks Unity Catalog occurs when catalog creation conflicts with existing catalogs or incomplete metadata. By verifying existing catalogs, ensuring proper deletion, and managing concurrent operations, you can avoid conflicts and successfully manage Unity Catalog in Databricks.