medusajs/medusa · warning
'zone' property at the ${j} index of the 'forms' property is
Error message
'zone' property at the ${j} index of the 'forms' property is not a valid custom field form zone for the '${model}' model. Received: ${zone}. What it means
Even with a string literal zone, the plugin validates it with isValidCustomFieldFormZone and checks the resulting config path (getFormEntryConfigPath) for the model. An unrecognized zone or missing path triggers this warning, showing the received value, and the entry is skipped.
Source
Thrown at packages/admin/admin-vite-plugin/src/custom-fields/generate-custom-field-forms.ts:563
return
}
if (!isStringLiteral(zoneProperty.value)) {
logger.warn(
`'zone' property at the ${j} index of the 'forms' property is not a string literal (e.g. 'general' or 'attributes').`,
{ file }
)
return
}
const zone = zoneProperty.value.value
const fullPath = getFormEntryConfigPath(model, zone)
if (
!isValidCustomFieldFormZone(zone) ||
!isValidCustomFieldFormConfigPath(fullPath)
) {
logger.warn(
`'zone' property at the ${j} index of the 'forms' property is not a valid custom field form zone for the '${model}' model. Received: ${zone}.`
)
return
}
const fieldsObject = element.properties.find(
(p) => isObjectProperty(p) && isIdentifier(p.key, { name: "fields" })
) as ObjectProperty | undefined
if (!fieldsObject) {
logger.warn(
`'fields' property is missing from the ${j} entry in the 'forms' property in ${file}.`,
{ file }
)
return
}
const fields: CustomFieldConfigField[] = []View on GitHub (pinned to 5e06e544a2)
Solutions
- Use a documented zone for the model, typically 'general' or 'attributes'
- Verify available zones in your Medusa version's admin custom-fields docs
- Fix typos in the zone string
Example fix
// before
forms: [{ zone: 'metadata', fields: { ... } }]
// after
forms: [{ zone: 'general', fields: { ... } }] Defensive patterns
Strategy: validation
Validate before calling
import { isValidCustomFieldFormZone } from '@medusajs/admin-shared'
if (!isValidCustomFieldFormZone(f.zone)) {
throw new Error(`zone '${f.zone}' is not supported for model '${model}'`)
} Type guard
const isKnownZone = (z: string) => isValidCustomFieldFormZone(z)
Prevention
- Default to 'general' unless docs list other zones for the model
- Re-validate zones after upgrading Medusa
When it happens
Trigger: zone: 'metadata' or another unsupported zone name for the model, or a zone whose generated config path does not exist in that Medusa version.
Common situations: Typos, zones valid for a different model, or version drift after upgrading Medusa when zone names changed.
Related errors
- 'zone' and 'tab' properties at the ${j} index of the 'forms'
- 'zone' property is missing from the ${j} index of the 'forms
- 'tab' property at the ${j} index of the 'forms' property is
- The 'fields' property is missing at the ${j} index of the 'f
- The 'fields' property at the ${j} index of the 'forms' prope
AI-assisted analysis of medusajs/medusa@5e06e544a2 (2026-08-27).
Data as JSON: /api/errors/22a8e0d650502255.
Report an issue: GitHub.