quarkusio/quarkus · error · BuildException

The value of <os> is not correct, supported values are: wind

Error message

The value of <os> is not correct, supported values are: windows, linux and docker.

What it means

Raised by AzureFunctionsDeployCommand.validateParameters when the quarkus.azure-functions.runtime.os setting (azure-functions plugin <os>) is non-empty but OperatingSystem.fromString cannot map it to a known OS. Only windows, linux and docker are recognized; any other spelling or casing aborts deployment during local parameter validation, before Azure is contacted.

Source

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

            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);
        }
        // java version
        if (StringUtils.isNotEmpty(config.runtime().javaVersion())
                && !JAVA_VERSION_PATTERN.matcher(config.runtime().javaVersion()).matches()) {
            log.warn(format(EXPANDABLE_JAVA_VERSION_WARNING, config.runtime().javaVersion()));
        }
        // pricing tier
        if (config.pricingTier().isPresent() && StringUtils.isNotEmpty(config.pricingTier().orElse(null))
                && PricingTier.fromString(config.pricingTier().orElse(null)).isExpandedValue()) {
            log.warn(format(EXPANDABLE_PRICING_TIER_WARNING, config.pricingTier().orElse(null)));
        }
        // docker image
        if (OperatingSystem.fromString(config.runtime().os()) == OperatingSystem.DOCKER
                && StringUtils.isEmpty(config.runtime().image().orElse(null))) {
            throw new BuildException(EMPTY_IMAGE_NAME);
        }
    }

View on GitHub (pinned to e1c734241f)

Solutions

  1. Set the OS to one of the supported values: windows, linux, or docker
  2. Remove the setting entirely to use the default if a specific OS is not required
  3. Check for typos or trailing whitespace in the configuration value
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at extensions/azure-functions/deployment/src/main/java/io/quarkus/azure/functions/deployment/AzureFunctionsDeployCommand.java:208 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/3283f75f8f986e0d. Report an issue: GitHub.