Billing account is not open" error on a GCP project: how to fix
Reopens a closed GCP billing account and relinks the project so services resume. Use it when GCP reports the billing account is not open; the key trigger is a billing account that was closed or suspended, which a billing admin must reopen in the Cloud Billing console before the project can be relinked.
TL;DR
The project's billing account is closed, so GCP disabled billing-dependent services. Reopen the account in the Cloud Billing console as a billing admin - resolving the underlying payments issue first - then relink the project with gcloud. Verify billingEnabled comes back true.
Billing account is not openSteps
List billing accounts:
gcloud billing accounts listand note the account's open state. Expected: you find the account with open shown as false, or you find nothing at all.If the list is empty, you lack billing permissions - get the Billing Account Administrator role on the account (or Project Billing Manager on the project) before anything else. Expected: the account appears in the list.
In the Cloud Billing console, open the closed account and choose Reopen. A closed account usually means the payments profile was closed or suspended - fix that first, since only a payments admin can. Expected: the account shows open.
Relink the project:
gcloud billing projects link [PROJECT_ID] --billing-account=[BILLING_ACCOUNT_ID]. Expected: the command succeeds with no error.Verify:
gcloud billing projects describe [PROJECT_ID]shows billingEnabled true. Restart any resources that were shut down while billing lapsed. Expected: services resume and the error is gone.
Use this when
- GCP API calls or the console report the billing account is not open.
- A project shows as linked to a closed billing account.
- Services stopped after a billing suspension and need re-enabling.
Not for this skill when
- The error is permission denied on the Cloud Billing API - that is IAM, not account state.
- The billing export job hits BigQuery quota errors - different problem.
Variant phrasings
- GCP billing account closed reopen
- Project linked to closed billing account
- Gcloud billing accounts list empty
Why it happens
GCP ties service availability to an open billing account. When the account closes - usually because the payments profile was closed, suspended, or never finished verification - the project keeps pointing at the dead account until someone with the right role reopens it and relinks the project.
Edge cases
- Organization policy constraints can block relinking even with the right roles - check for billing-related constraints if the link command fails.
- If the payments profile itself is the problem, only a payments admin on that profile can fix it; billing admins cannot.
- Resources shut down during the lapse do not always restart themselves - audit App Engine, Compute, and scheduled jobs after relinking.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_5CvIEd3Ipf2XQEbS2iPI0g