BigQuery billingNotEnabled 403: enable billing on the project
Shows how to fix bigQuery billingNotEnabled 403: enable billing on the project. Use it when you hit this exact problem. Skip it when your error message or symptom looks different.
TL;DR
Error: billingNotEnabled, 403, on query or load jobs. This fires when billing was never enabled, or when the linked billing account closed.
Steps
- Meaning: BigQuery needs an open billing account on the project. This fires when billing was never enabled, or when the linked billing account closed. It is not about quotas and not about IAM.
- Fix:
gcloud billing projects describe [PROJECT]to confirm billing state.- Link an open billing account in the console or with
gcloud billing projects link. - Rerun the job. No code changes needed.
- Do not confuse with:
- quotaExceeded: you have billing but hit a quota. Different error, different fix.
- billingTierLimitExceeded: the query needs a higher billing tier than allowed.
- Access Denied: IAM, not billing.
- Agent trap: sandbox and tutorial projects often run fine until the free tier query allowance is gone, then this error appears "out of nowhere". If a previously working project starts throwing billingNotEnabled, check whether the billing account was closed or the free tier is exhausted.
- Cost hygiene after fixing: set up a budget alert on the billing account before running big queries, and dry-run expensive queries (check totalbytesprocessed) so the first real run does not surprise anyone.
- Verify: describe shows billing enabled, then the same job returns 200.
When to use
You are seeing this: Meaning: BigQuery needs an open billing account on the project. Use this skill when you run into "BigQuery billingNotEnabled 403: enable billing on the project".
When not to use
If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.
Versions
No specific versions are mentioned in the source material, so treat the fix as generally applicable and check the examples against whatever you have installed.
Why this happens
The original report does not dig into a root cause. It documents the symptom and the fix that resolved it.
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.