Troubleshooting¶
This topic provides guidelines for troubleshooting issues with the Snowflake Native SDK for Connectors. If you want to discover the cause of a specific error, you need appropriate tools that make the troubleshooting process easier. For that reason the Snowflake Native SDK for Connectors provides a couple of procedures, views, and other methods to troubleshoot the connector effectively.
Procedure responses¶
Usually when something wrong happens with the connector, or even when the user cannot
execute the particular procedure successfully because of the state of the Connector, the first source
of the troubleshooting data should be the procedure response. In the Snowflake Native SDK for Connectors, the error response
from the procedure is standardized. The response is returned as a VARIANT
with
two fields, that are always present:
response_code
- the value of this field, in case of an error response, is an error code, e.g.INVALID_CONNECTOR_STATUS
message
- the value of this field is a message that provides more information regarding the occurred error
Structure of an error response:
{ "response_code": "<ERROR_CODE>", "message": "<error message>" }
Database objects¶
The Snowflake Native SDK for Connectors provides a couple of views and procedures that help in checking the actual state of the Connector.
Views:
PUBLIC.CONNECTOR_CONFIGURATION
(See Connection configuration reference)PUBLIC.SYNC_STATUS
(See Sync status reference)PUBLIC.CONNECTOR_STATS
(See Connector stats reference)PUBLIC.AGGREGATED_CONNECTOR_STATS
(See Connector stats reference)
Procedures:
PUBLIC.GET_CONNECTOR_STATUS()
(See Core SQL reference)PUBLIC.GET_CONNECTION_CONFIGURATION()
(See Connection configuration reference)
Event table¶
By default, procedures provided by the SDK that are implemented in Java use
ConnectorErrorHelper
to wrap thrown exceptions during the particular procedure execution. Apart from
wrapping the thrown exception and mapping it to ConnectorResponse
with an error
code, the default implementation of ConnectorErrorHelper
logs events basing on the thrown
exceptions to the Event Table if it’s set up in the customer’s account. If you
want to learn more about using Event Table, see the official Snowflake documentation.
There is a possibility to filter out logs generated by the Snowflake Native SDK for Connectors from the event table knowing only the application instance name. In addition, there is also a possibility to filter out logs of errors that occurred in the most common parts of the Connector.
Example query:
SELECT * FROM PLATFORM_CI_TOOLS.PUBLIC.EVENTS
WHERE RESOURCE_ATTRIBUTES:"snow.database.name" LIKE '<INSTANCE_NAME>'
[AND SCOPE:"name" LIKE '<ERROR_CODE>']
[ORDER BY timestamp DESC];
Possible error codes:
CONFIGURE_CONNECTOR_FAILED
- occurs when Configure Connector Wizard step failedSET_CONNECTION_CONFIGURATION_FAILED
- occurs when Set Connection Configuration Wizard step failedFINALIZE_CONNECTOR_CONFIGURATION_FAILED
- occurs when Finalize Connector Configuration Wizard step failedPAUSE_CONNECTOR_FAILED
- occurs when Pause Connector process failedRESUME_CONNECTOR_FAILED
- occurs when Resume Connector process failed