CircleCI "resource class not available on your plan" - Fix
The resource class is a real, correctly-named class - but your plan or org is not entitled to it. Large, arm, and GPU classes require a paid plan or explicit enablement, so the job cannot allocate the machine.
What this error means
A valid class name (not a typo) is rejected because the plan does not include it. The job never starts; the same config works for orgs whose plan enables that class. It is deterministic, not a transient capacity blip.
resource_class "gpu.nvidia.medium" is not available on your plan.
Upgrade your plan or contact support to enable GPU execution.Common causes
Class requires a paid plan
Larger Docker/Linux classes and the GPU/arm families are gated behind paid plans. On a free plan they are valid names but cannot be allocated.
GPU/arm not enabled for the org
Even on paid plans, GPU and some arm classes require explicit enablement for the organization before they can run.
Seat/concurrency limit reached
Plan limits on concurrency or specific class quotas can block allocation of an otherwise-available class until usage frees up or the plan is raised.
How to fix it
Step down to a class your plan includes
jobs:
build:
docker: [{ image: cimg/base:current }]
resource_class: medium # was a plan-gated classEnable the class or upgrade the plan
- Check Plan → Usage for which classes and quotas your plan allows.
- Enable GPU/arm execution for the org (or upgrade) before pinning those classes.
- For arm builds without entitlement, use an arm-capable orb/image on an allowed class where possible.
How to prevent it
- Confirm plan/org entitlement before pinning large, GPU, or arm classes.
- Centralize resource_class in a reusable executor so plan limits are enforced in one place.
- Track concurrency/class quotas so allocation does not silently fail.