Debugs a TableAccessDeniedError from an error tracking issue, Slack alert, or user report. Use when investigating why HogQL denied a system or warehouse table and whether the occurrence is a real bug or expected behavior. Trigger terms include TableAccessDeniedError, table_access_denied, and "You don't have access to table".
TableAccessDeniedError (posthog/hogql/errors.py, code table_access_denied) means the query referenced a table that access control removed from the HogQL schema.
The mechanism — how and why tables get removed — is documented in posthog/hogql/ACCESS_CONTROL.md; read it first.
Hints:
Unknown table instead.team_id, user_id, product, celery_task_id, temporal.*).system.* name is a system-table decision; a bare name is a warehouse table/view denial.user_id on the event usually means a userless Database.create_for — it fails closed, and bypass_warehouse_access_control does not cover system tables. That's a bug in the calling code.created_by; a creator who left the org is the known benign cause (cache warming, alerts, and exports already suppress capture for it via creator_access_revoked).AccessControl rows for the table's access_scope.130f3a1
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.