You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
R reports a Snowflake table that the user can't read as missing #440
When the role has no privilege on a Snowflake table, data_source(con, tables = ...) says the table doesn't exist. The error is `tables` names table not on the connection: "COMMONS_CI.LIVE.denied_orders".
Snowflake hides a table from a role that has no privilege on it. So after the probe query fails, the dbExistsTable() check returns FALSE and R reports a missing table. catalog_probe_relation() classifies the same failure as an authorization refusal, and the Python package raises its authorization error for it. A user who needs to ask for access is told instead that the table doesn't exist. Found by "live Snowflake classifies denied query access" in #431.
This was a misdiagnosis, so I'm closing it. R behaves as the shared contract says. catalog-access-precedence.json reports a name that the listing never returned as missing, ahead of any refusal. Snowflake leaves a table out of the listing when the role has no privilege on it, so "not on the connection" is the expected error.
The Python package doesn't raise an authorization error for this case either. Its live test calls the probe directly and skips the listing. The R live test in #431 expected the wrong error, and #431 now fixes that test.
Activity
jat255 commentedon Oct 21, 2026
This was a misdiagnosis, so I'm closing it. R behaves as the shared contract says.
catalog-access-precedence.jsonreports a name that the listing never returned as missing, ahead of any refusal. Snowflake leaves a table out of the listing when the role has no privilege on it, so "not on the connection" is the expected error.The Python package doesn't raise an authorization error for this case either. Its live test calls the probe directly and skips the listing. The R live test in #431 expected the wrong error, and #431 now fixes that test.