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 foundalthoughGET_STATUSshows the account asINVITED.- 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:
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:
- 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.
- 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:
- 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
COLLABORATIONorREGISTRYnamespace. - 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.
- You used the wrong namespace. Be sure to call the proper
- 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:
If you don’t get any results, ask an administrator to give you API access to the collaboration.
Code specs¶
- Error:
CodeSpecAlreadyExistsException- Cause:
Code 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 spec.
- Solution:
Register code spec before registering template.
ML Jobs¶
- Error:
- Cause:
The template body references a code spec using the versioned ID (for example,
my_ml_model_V0) instead of the name (for example,my_ml_model). Thecode_specsfield in the template uses the ID, but the procedure call in the template body must use the name.- Solution:
Use the code spec name without the version suffix in the template call body:
- Correct:
cleanroom.my_ml_model$my_train_job(...) - Incorrect:
cleanroom.my_ml_model_V0$my_train_job(...)
- Correct:
- Error:
ML Job fails with a warehouse or compute pool error.
- Cause:
The compute pool was not set up correctly for the clean room application, or GPU compute is not available in your region.
- Solution:
- Verify the compute pool was created with
FOR APPLICATION <installed_app_name>. ML Jobs require a compute pool dedicated to the clean room application. - Verify
GRANT USAGE ON COMPUTE POOLandGRANT USAGE ON WAREHOUSEwere both granted to the application. - The
CREATE COMPUTE POOLprivilege is required at the account level. Use ACCOUNTADMIN or a custom role with this privilege. SYSTEM_COMPUTE_POOL_GPUis not available in all regions. In regions without GPU support, useSYSTEM_COMPUTE_POOL_CPUfor CPU-based workloads, or create a custom GPU compute pool if your region supports GPU hardware. For regional availability, see Compute pools.
- Verify the compute pool was created with
- Error:
Collaboration creation fails and the collaboration moves to the
CREATE_FAILEDstate.- Cause:
ML Jobs require system compute pools, which are not available in every region. If you enable ML Jobs in a collaboration created in a region where system compute pools are unavailable, the code specs cannot be loaded and the collaboration moves to the
CREATE_FAILEDstate.- Solution:
Create the collaboration in a region that supports system compute pools. For regional availability, see Compute pools.