What problem does it solve?
When a TableAccessDeniedError appears in error tracking, a Slack alert, or a user report, it is unclear whether it signals a genuine bug in calling code or an expected access-control decision. This Skill provides a structured triage procedure for PostHog's HogQL table access denials.
Core Features & Use Cases
- Error Classification: Distinguishes system-table denials from warehouse table/view denials and separates expected 4xx HTTP responses from background-context failures.
- Context Analysis: Uses event query tags (team_id, user_id, product, celery_task_id, temporal.*) to identify which background job raised the error.
- Root Cause Hints: Identifies known patterns such as userless Database.create_for calls failing closed, departed creators of background jobs, and genuine RBAC or entitlement rules.
- Use Case: An engineer sees a table_access_denied issue in error tracking, checks the event tags, finds no user_id, and concludes the calling code has a bug because it created a database context without a user.
Quick Start
Ask the assistant to debug a TableAccessDeniedError from an error tracking issue and determine whether it is a real bug or expected behavior.