alibaba/nacos · error · NacosApiException

10000

10000

Error message

Required parameter 'groupName' type String is not present

What it means

Thrown by ConfigFormV3.validate() when groupName is blank. Returns HTTP 400 code 10000 (PARAMETER_MISSING). ConfigFormV3 is the v3 form that uses 'groupName' (which it copies to the parent's 'group' field). This check runs before the parent validate(), so for v3 APIs groupName is the required field name.

Source

Thrown at config/src/main/java/com/alibaba/nacos/config/server/model/form/ConfigFormV3.java:46

 */
public class ConfigFormV3 extends ConfigForm {
    
    private static final long serialVersionUID = 1105715502736280287L;
    
    private String groupName;
    
    public String getGroupName() {
        return groupName;
    }
    
    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }
    
    @Override
    public void validate() throws NacosApiException {
        if (StringUtils.isBlank(groupName)) {
            throw new NacosApiException(HttpStatus.BAD_REQUEST.value(), ErrorCode.PARAMETER_MISSING,
                "Required parameter 'groupName' type String is not present");
        }
        super.setGroup(groupName);
        super.validate();
    }
    
    /**
     * Validate for blur search API, which allow user input empty groupName and dataId to search all configs.
     *
     * @throws NacosApiException when form parameters is invalid.
     */
    public void blurSearchValidate() throws NacosApiException {
        if (null == groupName) {
            groupName = StringUtils.EMPTY;
            super.setGroup(groupName);
        }
        if (null == getDataId()) {
            setDataId(StringUtils.EMPTY);

View on GitHub (pinned to 9b989acdf1)

Solutions

  1. Use the v3 field name 'groupName' (not 'group') in v3 API requests.
  2. Ensure groupName is non-blank.
  3. Update client SDKs to the v3-compatible version that sends groupName.

Example fix

// before (v1/v2 style)
POST /v3/admin/cs/config  { "dataId":"app.yml", "group":"DEFAULT_GROUP" }
// after (v3)
POST /v3/admin/cs/config  { "dataId":"app.yml", "groupName":"DEFAULT_GROUP" }
Defensive patterns

Strategy: validation

Validate before calling

if (StringUtils.isBlank(groupName)) {
    throw new IllegalArgumentException("groupName is required for v3 APIs");
}

Try / catch

try { configApi.publish(form); }
catch (NacosApiException e) {
    if (e.getErrCode() == ErrorCode.PARAMETER_MISSING.getCode())
        { /* supply groupName */ } else throw e;
}

Prevention

When it happens

Trigger: Calling any v3 config API (under /v3/admin/cs or /v3/console/cs) without the groupName parameter. The v3 API surface renamed 'group' to 'groupName' for clarity.

Common situations: Migrating from v1/v2 where the field was 'group'; client SDK built against the old field name; form binding missing the new key.

Related errors


AI-assisted analysis of alibaba/nacos@9b989acdf1 (2026-08-14). Data as JSON: /api/errors/33fb67ad6ed6bc63. Report an issue: GitHub.