Cause: Token invalid, expired, or missing. Fix: Regenerate token in Hex workspace settings.
Cause: Token has "Read projects" scope but RunProject requires "Run projects". Fix: Create new token with "Run projects" scope.
Cause: Project ID wrong or project not published. Fix: Verify project ID. Only published projects can be run via API.
Cause: RunProject is limited to 20 requests/min, 60/hr.
Fix: Queue runs with delays. See hex-rate-limits.
Cause: SQL query, Python code, or connection error in the project. Fix: Open the project in Hex UI and check the error in the run history.
Cause: Run exceeded timeout or was manually cancelled. Fix: Optimize slow queries. Increase timeout in API trigger.
# Test token
curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer $HEX_API_TOKEN" \
https://app.hex.tech/api/v1/projects
# List recent runs for a project
curl -s -H "Authorization: Bearer $HEX_API_TOKEN" \
https://app.hex.tech/api/v1/project/PROJECT_ID/runs | python3 -m json.tool
For debugging, see hex-debug-bundle.