quarkusio/quarkus · error · BuildException

Invalid value for <appServicePlanResourceGroup>, it only all

Error message

Invalid value for <appServicePlanResourceGroup>, it only allow alphanumeric characters, periods, underscores, hyphens and parenthesis and cannot end in a period.

What it means

Raised by AzureFunctionsDeployCommand.validateParameters when the resource group configured for the App Service plan fails its pattern check (illegal characters or a trailing period). This is a separate setting from the function app's own resource group; like it, the App Service plan resource group must contain only alphanumerics, periods, underscores, hyphens and parenthesis and cannot end in a period, and validation aborts the deploy before any Azure client is initialized.

Source

Thrown at extensions/azure-functions/deployment/src/main/java/io/quarkus/azure/functions/deployment/AzureFunctionsDeployCommand.java:190

        }
        // resource group
        if (StringUtils.isBlank(config.resourceGroup())) {
            throw new BuildException(EMPTY_RESOURCE_GROUP);
        }
        if (config.resourceGroup().endsWith(".") || !config.resourceGroup().matches(RESOURCE_GROUP_PATTERN)) {
            throw new BuildException(INVALID_RESOURCE_GROUP_NAME);
        }
        // asp name & resource group
        if (StringUtils.isNotEmpty(config.appServicePlanName())
                && !config.appServicePlanName().matches(APP_SERVICE_PLAN_NAME_PATTERN)) {
            throw new BuildException(format(INVALID_SERVICE_PLAN_NAME, APP_SERVICE_PLAN_NAME_PATTERN));
        }
        if (config.appServicePlanResourceGroup().isPresent()
                && StringUtils.isNotEmpty(config.appServicePlanResourceGroup().orElse(null))
                &&
                (config.appServicePlanResourceGroup().orElse(null).endsWith(".")
                        || !config.appServicePlanResourceGroup().orElse(null).matches(RESOURCE_GROUP_PATTERN))) {
            throw new BuildException(INVALID_SERVICE_PLAN_RESOURCE_GROUP_NAME);
        }
        // slot name
        /*
         * if (deploymentSlotSetting != null && StringUtils.isEmpty(deploymentSlotSetting.getName())) {
         * throw new BuildException(EMPTY_SLOT_NAME);
         * }
         * if (deploymentSlotSetting != null && !deploymentSlotSetting.getName().matches(SLOT_NAME_PATTERN)) {
         * throw new BuildException(String.format(INVALID_SLOT_NAME, SLOT_NAME_PATTERN));
         * }
         *
         */
        // region
        if (StringUtils.isNotEmpty(config.region()) && Region.fromName(config.region()).isExpandedValue()) {
            log.warn(format(EXPANDABLE_REGION_WARNING, config.region()));
        }
        // os
        if (StringUtils.isNotEmpty(config.runtime().os()) && OperatingSystem.fromString(config.runtime().os()) == null) {
            throw new BuildException(INVALID_OS);

View on GitHub (pinned to e1c734241f)

Solutions

  1. Fix the App Service plan resource group name to use only permitted characters
  2. Remove any trailing period from the value
  3. Confirm the setting in the azure-functions plugin configuration (appServicePlanResourceGroup) matches an actual Azure resource group
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at extensions/azure-functions/deployment/src/main/java/io/quarkus/azure/functions/deployment/AzureFunctionsDeployCommand.java:190 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/b84ec8b7b76c17cd. Report an issue: GitHub.