Troubleshooting Collaboration Data Clean Rooms

Consult the following troubleshooting tips when you encounter errors while you work with Collaboration Data Clean Rooms.

Collaborations

Error:

Pending invitation for collaboration: <collaboration name> not found although GET_STATUS shows the account as INVITED.

Cause:

If an initial join attempt has failed for some reason, later join attempts will likely fail with this reason.

Solution:

Delete and recreate the collaboration.


 

Error:

A collaboration that you created is not visible in a collaborator’s account.

Cause:

There are several possible reasons:

  • The collaboration was created in a different cloud hosting region and you haven’t enabled cross-cloud auto-fulfillment.

  • You didn’t share the collaboration, you shared the collaboration with the wrong account, or you opened the wrong collaborator account in the Snowsight/SDCR UI/CLI. Confirm that the account where you expect to see your collaboration is the one that you shared the collaboration with, and that you’re signed in to that shared account.

  • There is a small delay between publishing a collaboration and when it becomes visible to the collaborator.

Solution:

Verify that the collaborator’s account matches the one in your collaboration spec and that cross-cloud auto-fulfillment is enabled if needed. Wait a few moments for the collaboration to propagate.


 

Error:

ReferenceUsageGrantMissingException: Reference usage grants are required for the following databases in your account ... when a data provider tries to join the collaboration. Data providers will see this message when they try to join a collaboration, and they have shared data that they don’t have REFERENCE_USAGE on. This is expected behavior.

Solution:

The error message includes a database name and a share name. Either someone with REFERENCE_USAGE on the data, or an ACCOUNTADMIN, must run the following SQL command, providing the database and share names given in the error message:

GRANT REFERENCE_USAGE ON DATABASE <database_name> TO SHARE <share_name>;

After REFERENCE_USAGE is successfully granted, the data provider can join the collaboration.

API and Permissions

Error:

Unknown user-defined function <function name>

Cause:

If this is a procedure documented for the DCR Collaboration API, you might have misspelled the procedure.

If you have not misspelled the procedure name, or if the procedure is a system procedure (that is, it has a $ in the name), you might be using an older version of the API and need to upgrade your clean rooms API version.

Solution:
  • Confirm that you spelled the procedure correctly, and if not, try again with the proper spelling.

  • To update your installation, run the following SQL code:

USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.PREPARE_MOUNT_SCRIPT();
EXECUTE IMMEDIATE FROM @SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.MOUNT_CODE_STAGE/dcr_loader.sql;

 

Error:

Issues when you create new clean rooms or run collaboration stored procedures.

Cause:

If your Snowflake Data Clean Rooms installation is on version 12.3 or earlier, your API environment can be out of date with respect to the native app and automatic updates may have stopped working.

Solution:

Run the mount procedure again as ACCOUNTADMIN, verify the mount, and optionally turn automatic upgrades back on.

USE ROLE ACCOUNTADMIN;

-- Prepare the mount script
CALL SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.PREPARE_MOUNT_SCRIPT();

-- Execute the mount for Snowflake Data Clean Rooms
EXECUTE IMMEDIATE FROM @SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.MOUNT_CODE_STAGE/dcr_loader.sql;

USE ROLE SAMOOHA_APP_ROLE;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.CHECK_MOUNT_STATUS();

-- Optional: prefer automatic upgrades in the future
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.ENABLE_LOCAL_DB_AUTO_UPGRADES();

 

Error:

Listing 'listing name' is not fulfilled to your current region. Please request the listing, or if already requested, retry after some time

Cause:

You are using an older version of the clean rooms API. This issue was fixed in a more recent version.

Solution:

Update your clean rooms installation.


 

Error:

SQL compilation error: Unknown user-defined function SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.RUN

Cause:

Either you misspelled some part of the fully-qualified procedure name, or you do not have privileges to run this procedure.

Solution:

Confirm that you used the correct name of the procedure. If you are not using SAMOOHA_APP_ROLE, try switching to that role to see if the same error occurs. If it does not, it is a privilege error.


 

Error:

Unknown user-defined function SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.<namespace>.<procedure name>

Cause:

One of the following:

  • You used the wrong namespace. Be sure to call the proper COLLABORATION or REGISTRY namespace.

  • You mistyped the name of the function. Check the reference guide for the proper naming.

  • You are using an RBAC role that doesn’t have permissions to call the procedure.

  • You don’t have SAMOOHA_APP_ROLE.

Solution:
  • Confirm that you spelled the procedure correctly and used the correct namespace.

  • Try switching to SAMOOHA_APP_ROLE to see whether you can run the procedure. If you can, then the issue is insufficient privileges on your current role. Ask someone with SAMOOHA_APP_ROLE to grant you proper privileges.

  • To check if you have SAMOOHA_APP_ROLE, run the following command:

SELECT CURRENT_USER();
SHOW GRANTS TO USER <current_user_name> ->> SELECT * FROM $1 WHERE "role" = 'SAMOOHA_APP_ROLE';

If you don’t get any results, ask an administrator to give you API access to the collaboration.

Code bundles

Error:

CodeSpecAlreadyExistsException

Cause:

Code bundle spec with same name and version already registered.

Solution:

Use a different version or update the existing version.


 

Error:

SpecValidationError

Cause:

YAML doesn’t conform to schema.

Solution:

Check required fields and format.


 

Error:

CodeSpecStageNotAccessibleError

Cause:

Stage referenced in artifact isn’t accessible.

Solution:

Grant access to stage or verify stage exists.


 

Error:

CodeSpecArtifactNotFoundAtStageError

Cause:

File not found at specified stage path.

Solution:

Upload file to stage before registering.


 

Error:

StageDirectoryNotEnabledError

Cause:

Stage doesn’t have DIRECTORY enabled.

Solution:

Enable directory on the stage: ALTER STAGE ... SET DIRECTORY = (ENABLE = TRUE)


 

Error:

CodeSpecNotFoundForOwnerException

Cause:

Template references unregistered code bundle spec.

Solution:

Register code bundle spec before registering template.