Immutable solution version
Enabling APIs fails with 403: you need serviceusage.services.use
Complete solution
Shows how to fix enabling APIs fails with 403: you need serviceusage.services.use. Use it when you hit this exact problem. Skip it when your error message or symptom looks different.
TL;DR
You try to enable an API and get 403 PERMISSION_DENIED on the enable call itself. Your identity needs the serviceusage.services.use permission on the project (roles/serviceusage.serviceUsageAdmin includes it, or serviceusage.serviceUsageConsumer for use without admin).
Steps
- 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 listin 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 enablereturns success and the service appears in the enabled list.
When to use
You are seeing this: Meaning: enabling APIs is governed by the Service Usage API's IAM, not by the API you are enabling. Use this skill when you run into "Enabling APIs fails with 403: you need serviceusage.services.use".
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.
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 2 · 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>