Verify catalog integration is working correctly (universal for all catalog types). Use when: verify catalog integration, test catalog integration connection, check catalog integration status, validate catalog integration setup.
Validate that your catalog integration is properly configured and can connect to the external catalog.
Use this verification process after creating any catalog integration (OpenCatalog, Glue IRC, Unity Catalog, etc.) to ensure it's operational.
Verify the integration was created with correct configuration.
Execute:
SHOW CATALOG INTEGRATIONS LIKE '<integration_name>';
DESC CATALOG INTEGRATION <integration_name>;
Expected Output: Integration details with ENABLED = TRUE
Key Fields to Verify:
name: Matches your integration nameenabled: TRUEcatalog_source: Appropriate value (POLARIS, ICEBERG_REST, GLUE, etc.)catalog_uri: Matches your catalog endpoint URL (for REST catalogs)catalog_name: Matches your catalog identifierPresent to user:
Integration Configuration:
─────────────────────────────
Name: <integration_name>
Enabled: <TRUE|FALSE>
Catalog Source: <catalog_source>
Catalog URI: <url>
Catalog Name: <catalog_name>
─────────────────────────────
If ENABLED = FALSE: Integration exists but is disabled - this is unusual for new creation.
⚠️ STOPPING POINT: If configuration looks incorrect, pause and ask user if values should be different.
Use SYSTEM$VERIFY_CATALOG_INTEGRATION() to test connection to the catalog.
Execute:
SELECT SYSTEM$VERIFY_CATALOG_INTEGRATION('<integration_name>');
Expected Success Response:
{
"success": true
}
Present to user: "✅ Connection test passed! Integration can authenticate with the catalog."
If Failure Response:
{
"success": false,
"errorCode": "004155",
"errorMessage": "Failed to perform OAuth client credential flow..." // Or other error
}
If Failed:
Ask: "Would you like to list namespaces from the catalog to verify discovery works?"
If Yes → Execute the following:
SELECT SYSTEM$LIST_NAMESPACES_FROM_CATALOG('<integration_name>');
If No → Skip to Step 4
Expected Output: JSON array of namespaces
[
"my_namespace",
"another_namespace"
]
Present to user:
Discovered Namespaces:
─────────────────────────────
- <namespace_1>
- <namespace_2>
- <namespace_3>
─────────────────────────────
Ask: "Do you see your expected namespace(s) in this list?"
If Empty Array:
If Unexpected Results:
Ask: "Would you like to list tables from a specific namespace? If yes, which namespace?"
If Yes → Ask user for namespace name, then execute the following If No → Skip to Step 5
Execute:
SELECT SYSTEM$LIST_ICEBERG_TABLES_FROM_CATALOG(
'<integration_name>',
'<namespace>'
);
Expected Output: JSON array of tables
[
"customer_data",
"transaction_history",
"product_catalog"
]
Present to user:
Tables in namespace '<namespace>':
─────────────────────────────
- <table_1>
- <table_2>
- <table_3>
─────────────────────────────
Ask: "Are these the tables you want to query from Snowflake?"
If Empty Array:
If Tables Missing:
Present complete verification results:
Verification Results:
═══════════════════════════════════════════════════════════
✅ Integration exists and is enabled
✅ Connection test: PASSED
✅ Namespaces discovered: <count> namespace(s)
✅ Tables visible: <count> table(s) in '<namespace>'
═══════════════════════════════════════════════════════════
Your catalog integration is fully configured and operational!
If all checks passed:
If any checks failed:
Track verification status:
SYSTEM$VERIFY_CATALOG_INTEGRATION() returns successVerification status report indicating whether catalog integration is operational or requires troubleshooting.
If all verification checks passed:
Load shared/next-steps/SKILL.md (path: ../shared/next-steps/SKILL.md)
Present options to the user for accessing catalog tables:
DO NOT skip this step. After successful verification, users need guidance on how to actually use the catalog integration.
This is a universal verification process. However, different catalog types may have:
For catalog-specific troubleshooting, refer back to the parent skill's troubleshooting documentation.