asana API 400: premium_only custom fields require a premium workspace
Fixes Asana 400 premium_only errors when a generated client writes custom fields on a free-tier workspace. Use when custom fields in the payload are rejected because the workspace is not on a paid plan. Not for other Asana 400s, auth failures, or task creation errors unrelated to custom fields.
TL;DR
Your Asana workspace is on the free tier and custom fields are a paid feature. The 400 with premium_only means the call itself is fine; the workspace cannot use the feature. Either upgrade the workspace or drop custom fields from the payload. Code-side, detect the error and degrade gracefully on free workspaces.
The call is correct. The plan is not.
Verbatim query
asana API 400: premium_only custom fields require a premium workspaceSteps
Confirm the workspace tier Look up the workspace the API token belongs to and check its plan in Asana. Expected: You can state plainly whether the workspace is free or paid.
Decide: upgrade or redesign the payload If the integration needs custom fields, the workspace needs a paid plan. If not, move on to step 3. Expected: A clear decision recorded before touching code.
Remap custom fields to built-in fields or external storage Map each custom field to a built-in field like notes or tags, or store the data outside Asana and link to it. Expected: The payload no longer includes any custom field writes.
Re-run the task creation or update Send the redesigned payload and confirm it succeeds. Expected: 200 or 201 with no premium_only error.
Add a capability check to the generated client Catch premium_only and fall back to the built-in-field payload automatically, with a logged note that custom fields were skipped. Expected: The client works on free workspaces instead of crashing.
Use this when
- Asana returns 400 premium_only on any request that writes custom fields.
- A generated client assumes premium features exist on the target workspace.
- The same code works on one workspace and fails on another.
Not for this skill when
- The 400 is about something else entirely, like a bad assignee or invalid dates.
- The failure is a 401 or 403 authentication problem.
- Tasks fail to create for reasons unrelated to custom fields.
Variant phrasings
premium_only on custom field settings
Reading or writing custom field settings on a free workspace returns the same gate. Same fix: upgrade or stop touching custom fields.
"Custom fields are available on paid plans"
The docs wording of the same restriction. If your client hits this message, this skill applies.
Why it happens
Asana gates custom fields at the workspace tier, not at the API key. Generated clients are usually built and tested against a paid workspace, then deployed against a free one. The code never changes; the plan does. Nothing in the error says "your code is wrong," because it is not.
Edge cases
- A workspace upgraded mid-project starts accepting custom fields; a client that cached the failure should retry rather than permanently degrade.
- Guest users may not see custom fields even on paid workspaces; that is a permissions shape, not this error.
- Project-level and workspace-level custom fields behave the same under the tier gate.
- Test against the tier you will deploy to. Sandbox on paid, production on free is a classic way to ship this bug.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_IqeJagtlXAlG3szIuSvahw