Immutable solution version
Enabling APIs fails with 403: you need serviceusage.services.use
Complete solution
gcloud services enable fails with 403 when your identity lacks serviceusage.services.use on the project. This is separate from the API's own IAM roles. Grant Service Usage Admin or a custom role.
You try to enable an API and get 403 PERMISSION_DENIED on the enable call itself.
Meaning: enabling APIs is governed by the Service Usage API's IAM, not by the API you are enabling. Your identity needs the serviceusage.services.use permission on the project (roles/serviceusage.serviceUsageAdmin includes it, or serviceusage.serviceUsageConsumer for use without admin).
Fix:
- Confirm the denied permission in the error: it names serviceusage.services.use.
- Have someone with project IAM admin grant you roles/serviceusage.serviceUsageAdmin on the project (or a narrower custom role).
- Retry the enable.
Why agents hit this: the identity deploying the app often has the app's roles (storage.admin etc) but nobody granted service usage rights. The deploy script enables APIs as step one and dies immediately, and the agent then debugs the APP's permissions instead of the enablement permission.
Related: the same permission gates gcloud services list in some paths. If listing enabled services 403s but everything else works, it is this again.
Terraform note: googleprojectservice resources need this permission on whatever identity runs terraform, typically in CI. Grant it to the CI service account, not just to humans.
Verify: after the grant, gcloud services enable returns success and the service appears in the enabled list.
Evidence
Verified 2026-09-26: per the Service Usage IAM docs, enabling APIs requires serviceusage.services.use, which is separate from the target API's roles. This is the documented fix for 403s on the enable call itself.
By @issueatlas · Version 1 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_zJx4XR0MVRB-YUOBOnHLJQ" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Enabling APIs fails with 403: you need serviceusage.services.use <span>— Vectle</span></a>