COA Deployment Error Resolution
This guide helps you quickly find and fix common deployment errors. It consolidates links to existing docs and adds resolution steps for errors that frequently appear in support tickets.
Quick Reference Table
| Error or Scenario | Where to Find Help |
|---|---|
| Permission denied or env-deploy errors | Coalesce Permission Requirements |
| Snowflake "Insufficient privileges" in view validation | Snowflake View Validation Privileges |
| Blank column names or plan validation failure | Blank Column Names |
| Storage mapping errors | Storage Mapping Deployment Failures |
| Plan failures (renames, dropped tables, metadata drift) | Troubleshooting Deploys and Refreshes |
| Invalid column metadata (no failed stages) | Invalid Column Metadata |
| Primary key or schema change failures | Primary Key Schema Change Failures |
Coalesce Permission Requirements
To deploy or refresh through the API, CLI, or Coalesce App, the account or service principal must have the right Coalesce role and data platform access.
Environment-Level Permissions
- Environment Admin: Required to deploy. This role manages Environment settings, reads project documentation, and deploys through the API, CLI, or Coalesce App.
- Environment Reader: Can view documentation and certain API functions; cannot deploy.
If you see permission or "env-deploy" related errors when deploying (for example, from CI/CD or the CLI), ensure the account has the Environment Admin role on the target Environment. Service accounts used for automated deployments must be added to the Org, Project, and Environment with this role.
For details, see Adding Users and Setting Permissions and RBAC Roles and Permissions.
Data Platform Permissions
Your Environment credentials (Snowflake, Databricks, etc.) must have sufficient privileges to create and modify objects. For Snowflake, see Setting Up a Snowflake Service Account. For CI/CD, see Data Platform Permissions in the GitHub Actions guide.
Snowflake View Validation Privileges
You may see errors such as:
SQL access control error: Insufficient privileges to operate on table 'STG_DISCOUNTS_DATA'
during the Validating object exists stage when deploying views. The role may have ownership on both the view and the underlying table, and the same query may run successfully when executed manually in Snowflake.
Why This Happens
Snowflake evaluates view privileges at different times. During deployment, Coalesce runs validation queries (for example, SELECT 1 FROM "DB"."SCHEMA"."VIEW_NAME" LIMIT 0). Snowflake may enforce privileges on underlying tables differently in this context than when you run the query interactively.
How To Resolve
-
Grant explicit privileges on underlying objects: Ensure the deployment role has
SELECTon all tables and views referenced by the view definition:GRANT SELECT ON ALL TABLES IN SCHEMA <db>.<schema> TO ROLE <coalesce_role>;GRANT SELECT ON ALL VIEWS IN SCHEMA <db>.<schema> TO ROLE <coalesce_role>;- For future objects:
GRANT SELECT ON FUTURE TABLES IN SCHEMA ...andGRANT SELECT ON FUTURE VIEWS IN SCHEMA ...
-
Verify the role in use: Confirm the role configured in the Environment credentials is the one with these grants. Check with
SHOW GRANTS TO ROLE <role_name>;in Snowflake. -
Check for ownership vs. privilege: Ownership alone can be insufficient in some Snowflake configurations. Explicit
SELECTgrants on underlying tables and views are recommended.
For a full setup, see Setting Up a Snowflake Service Account. For general permission issues when adding sources, see Permission Issues When Adding Sources.
What's Next?
- Troubleshooting Deploys and Refreshes for a full overview of deployment and refresh troubleshooting
- Storage Mapping Deployment Failures for database and schema mapping issues
- Understanding Presync for how Coalesce reconciles off-platform changes