Skip to content

Troubleshooting Matillion agent for Snowflake

This article contains fixes and recommendations for some common problems encountered when installing and using the Matillion agent for Snowflake.


Agent status hasn't changed to READY

If your agent status remains in PENDING or some other state and doesn't change to READY, you can inspect the logs of the agent to determine the probable cause. To inspect the logs:

  1. Open the app.
  2. Click the App events tab.
  3. Click View logs.
  4. Run the following query:

    SELECT
        TIMESTAMP as time,
        COALESCE(TRY_PARSE_JSON(VALUE), VALUE) AS LOG
    FROM
        <EVENTS_TABLE>
    WHERE RESOURCE_ATTRIBUTES['snow.application.name'] = '<APPLICATION_NAME>' or
        RESOURCE_ATTRIBUTES['snow.database.name'] = '<APPLICATION_NAME>'
    ORDER BY time desc
    

Running this query will give you the latest logs for the agent, which you can examine to determine the cause of the problem.

Note

  • To view logs, you will need to configure an event table in the Snowflake environment. Read Event table overview for details.
  • You may need to run the query as an ACCOUNTADMIN.

What agent version is running?

You may need to know what version of the agent you are running, for example to pass diagnostic information to Matillion Support. To determine the agent version:

  1. Open the app.
  2. Click the Privileges tab.
  3. This tab displays two numbers separated by a dash. The agent version is the second number, after the dash. For example, if the tab displays 1.0.20-10.983.0 then the agent version is 10.983.0.

Some pipelines aren't running

If the agent is started and running correctly but some of your Data Productivity Cloud pipelines fail to run, the issue may be with specific components in those pipelines that need to communicate on non-standard ports.

To resolve this issue, you will need to open additonal ports, as described below.


How to open more ports

To open up additional ports, you will need to alter the network rule created by the application, which by default only allows access to ports 80 and 443. You must make these changes using the same role that installed the application.

The network rule created by the application will follow this naming convention:

<APPLICATION_NAME>_APP_DATA.CONFIGURATION.<APPLICATION_NAME>_ALL_EXTERNAL_ACCESS_NETWORK_RULE

The default <APPLICATION_NAME> is MATILLION_DATA_PRODUCTIVITY_CLOUD which means the network rule will be:

MATILLION_DATA_PRODUCTIVITY_CLOUD_APP_DATA.CONFIGURATION.MATILLION_DATA_PRODUCTIVITY_CLOUD_ALL_EXTERNAL_ACCESS_NETWORK_RULE

Login to Snowsight and use the role created for the native application. Note that if this role is not assigned to a user, you may need to complete this action by running the following:

GRANT ROLE <ROLE_NAME> TO USER "<USER_NAME>";

After assuming the role, run the following query to update the network rule:

ALTER NETWORK RULE MATILLION_DATA_PRODUCTIVITY_CLOUD_APP_DATA.CONFIGURATION.MATILLION_DATA_PRODUCTIVITY_CLOUD_ALL_EXTERNAL_ACCESS_NETWORK_RULE
SET VALUE_LIST = (
'0.0.0.0:443', -- these existing values should not be changed
'0.0.0.0:80', -- these existing values should not be changed
'<SOME_HOST>:<SOME_PORT>');

Where <SOME_HOST>:<SOME_PORT> are the new host IP address and network port that you want to open. To open multiple ports, supply a comma-separated list of values in the query.

The rule update is applied immediately, and any pipeline component requiring the bespoke host:port combination should now start working.

Warning

The following ports are currently not supported:

  • 20 (FTP)
  • 465 (SMTP)
  • 445 (SMB)