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
- Fix the App Service plan resource group name to use only permitted characters
- Remove any trailing period from the value
- 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.