Describe the bug
When running az functionapp plan create with --sku EP1 and --is-linux false, the resulting App Service Plan is created as Linux instead of Windows. The --is-linux false flag is silently ignored. This behavior began occurring in recent CLI/platform versions and can be consistently reproduced regardless of resource group or region.
Related command
az functionapp plan create
az functionapp plan create --name myPlan
--resource-group myResourceGroup --location eastus
--sku EP1 `
--is-linux false
Errors

No error, just every time creates as Linux. throws no errors in the script run.
Issue script & Debug output
az functionapp plan create --resource-group $resourceGroup --name $planName --location $location --sku EP1 --is-linux false --debug
cli.knack.cli: Command arguments: ['functionapp', 'plan', 'create', '--resource-group', 'myrgname', '--name', 'myfuncplan000', '--location', 'westus3', '--sku', 'EP1', '--is-linux', 'false', '--debug']
cli.knack.cli: init debug log:
Enable color in terminal.
Enable VT mode.
cli.knack.cli: Event: Cli.PreExecute []
cli.knack.cli: Event: CommandParser.OnGlobalArgumentsCreate [<function CLILogging.on_global_arguments at 0x0000026908259A80>, <function OutputProducer.on_global_arguments at 0x0000026908801B20>, <function CLIQuery.on_global_arguments at 0x000002690883F920>]
cli.knack.cli: Event: CommandInvoker.OnPreCommandTableCreate []
cli.azure.cli.core: Using packaged command index for profile 'latest'.
cli.azure.cli.core: Modules found from index for 'functionapp': ['azure.cli.command_modules.appservice', 'azure.cli.command_modules.serviceconnector']
cli.azure.cli.core: Loading command modules...
cli.azure.cli.core: Loaded command modules in parallel:
cli.azure.cli.core: Name Load Time Groups Commands
cli.azure.cli.core: serviceconnector 0.214 20 331
cli.azure.cli.core: appservice 0.327 88 299
cli.azure.cli.core: Total (2) 0.336 108 630
cli.azure.cli.core: Loaded 106 groups, 630 commands.
cli.azure.cli.core: Found a match in the command table.
cli.azure.cli.core: Raw command : functionapp plan create
cli.azure.cli.core: Command table: functionapp plan create
cli.knack.cli: Event: CommandInvoker.OnPreCommandTableTruncate [<function AzCliLogging.init_command_file_logging at 0x00000269089802C0>]
cli.azure.cli.core.azlogging: metadata file logging enabled - writing logs to 'mypath.azure\commands\2026-04-14.03-59-24.functionapp_plan_create.15952.log'.
az_command_data_logger: command args: functionapp plan create --resource-group {} --name {} --location {} --sku {} --is-linux {} --debug
cli.knack.cli: Event: CommandInvoker.OnPreArgumentLoad [<function register_global_subscription_argument..add_subscription_parameter at 0x00000269089C9E40>]
cli.knack.cli: Event: CommandInvoker.OnPostArgumentLoad []
cli.knack.cli: Event: CommandInvoker.OnPostCommandTableCreate [<function register_ids_argument..add_ids_arguments at 0x00000269089CA480>, <function register_global_policy_argument..add_global_policy_argument at 0x00000269089CA5C0>, <function register_cache_arguments..add_cache_arguments at 0x00000269089CA660>, <function register_upcoming_breaking_change_info..update_breaking_change_info at 0x00000269089CA700>]
cli.knack.cli: Event: CommandInvoker.OnCommandTableLoaded []
cli.knack.cli: Event: CommandInvoker.OnPreParseArgs []
cli.knack.cli: Event: CommandInvoker.OnPostParseArgs [<function OutputProducer.handle_output_argument at 0x0000026908801BC0>, <function CLIQuery.handle_query_parameter at 0x000002690883F9C0>, <function register_ids_argument..parse_ids_arguments at 0x00000269089CA520>]
cli.azure.cli.core.commands.client_factory: Getting management service client client_type=WebSiteManagementClient
cli.azure.cli.core.auth.persistence: build_persistence: location='mypath\.azure\msal_token_cache.bin', encrypt=True
cli.azure.cli.core.auth.binary_cache: load: mypath.azure\msal_http_cache.bin
urllib3.util.retry: Converted retries value: 1 -> Retry(total=1, connect=None, read=None, redirect=None, status=None)
msal.application: Broker enabled? True
azure.mgmt.web.v2024_11_01._utils.serialization: Readonly attribute name will be ignored in class <class 'azure.mgmt.web.v2024_11_01.models._models_py3.AppServicePlan'>
cli.azure.cli.core.auth.credential_adaptor: CredentialAdaptor.get_token_info: scopes=('https://management.core.windows.net//.default',), options={}
cli.azure.cli.core.auth.msal_credentials: UserCredential.acquire_token: scopes=['https://management.core.windows.net//.default'], claims_challenge=None, kwargs={}
msal.application: Cache hit an AT
msal.telemetry: Generate or reuse correlation_id: 2a07c32b-4a62-4afe-9e91-717fe3ee05d9
cli.azure.cli.core.sdk.policies: Request URL: 'https://management.azure.com/subscriptions/1111111111111111111111/resourceGroups/myrgname/providers/Microsoft.Web/serverfarms/myfuncplan000?api-version=2024-11-01'
cli.azure.cli.core.sdk.policies: Request method: 'PUT'
cli.azure.cli.core.sdk.policies: Request headers:
cli.azure.cli.core.sdk.policies: 'Content-Type': 'application/json'
cli.azure.cli.core.sdk.policies: 'Content-Length': '174'
cli.azure.cli.core.sdk.policies: 'Accept': 'application/json'
cli.azure.cli.core.sdk.policies: 'x-ms-client-request-id': '555555-555555-555555'
cli.azure.cli.core.sdk.policies: 'CommandName': 'functionapp plan create'
cli.azure.cli.core.sdk.policies: 'ParameterSetName': '--resource-group --name --location --sku --is-linux --debug'
cli.azure.cli.core.sdk.policies: 'User-Agent': 'AZURECLI/2.85.0 (MSI) azsdk-python-core/1.39.0 Python/3.13.11 (Windows-2025Server-10.0.26200-SP0)'
cli.azure.cli.core.sdk.policies: 'Authorization': '*****'
cli.azure.cli.core.sdk.policies: Request body:
cli.azure.cli.core.sdk.policies: {"location": "westus3", "sku": {"name": "EP1", "tier": "ElasticPremium"}, "properties": {"perSiteScaling": false, "reserved": true, "isXenon": false, "zoneRedundant": false}}
urllib3.connectionpool: Starting new HTTPS connection (1): management.azure.com:443
urllib3.connectionpool: https://management.azure.com/subscriptions/1111111111111111111111/resourceGroups/myrgname/providers/Microsoft.Web/serverfarms/myfuncplan000?api-version=2024-11-01 HTTP/1.1" 200 1828
cli.azure.cli.core.sdk.policies: Response status: 200
cli.azure.cli.core.sdk.policies: Response headers:
cli.azure.cli.core.sdk.policies: 'Cache-Control': 'no-cache'
cli.azure.cli.core.sdk.policies: 'Pragma': 'no-cache'
cli.azure.cli.core.sdk.policies: 'Content-Length': '1828'
cli.azure.cli.core.sdk.policies: 'Content-Type': 'application/json'
cli.azure.cli.core.sdk.policies: 'Expires': '-1'
cli.azure.cli.core.sdk.policies: 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
cli.azure.cli.core.sdk.policies: 'x-ms-request-id': '0ee19aa3-df7c-4838-b2b4-cf78e18cc3d5'
cli.azure.cli.core.sdk.policies: 'X-AspNet-Version': '4.0.30319'
cli.azure.cli.core.sdk.policies: 'X-Powered-By': 'ASP.NET'
cli.azure.cli.core.sdk.policies: 'x-ms-operation-identifier': 'tenantId=0000000000000,objectId=0000000000/westus3/2222222222222222'
cli.azure.cli.core.sdk.policies: 'x-ms-ratelimit-remaining-subscription-writes': '199'
cli.azure.cli.core.sdk.policies: 'x-ms-ratelimit-remaining-subscription-global-writes': '2999'
cli.azure.cli.core.sdk.policies: 'x-ms-correlation-request-id': '850170c6-7f07-4e4b-8108-518b22b66c5b'
cli.azure.cli.core.sdk.policies: 'x-ms-routing-request-id': 'WESTUS3:20260414T035927Z:850170c6-7f07-4e4b-8108-518b22b66c5b'
cli.azure.cli.core.sdk.policies: 'X-Content-Type-Options': 'nosniff'
cli.azure.cli.core.sdk.policies: 'X-Cache': 'CONFIG_NOCACHE'
cli.azure.cli.core.sdk.policies: 'X-MSEdge-Ref': 'Ref A: 855CAAA0F7F843B38AC3EEC579EE30FF Ref B: BY1AA1072319040 Ref C: 2026-04-14T03:59:26Z'
cli.azure.cli.core.sdk.policies: 'Date': 'Tue, 14 Apr 2026 03:59:27 GMT'
cli.azure.cli.core.sdk.policies: Response content:
cli.azure.cli.core.sdk.policies: Body is streamable
cli.knack.cli: Event: CommandInvoker.OnTransformResult [<function _resource_group_transform at 0x00000269089CA200>, <function x509_from_base64_to_hex_transform at 0x00000269089CA2A0>]
cli.knack.cli: Event: CommandInvoker.OnFilterResult []
{
"asyncScalingEnabled": false,
"elasticScaleEnabled": true,
"extendedLocation": null,
"freeOfferExpirationTime": null,
"geoRegion": "West US 3",
"hostingEnvironmentProfile": null,
"hyperV": false,
"id": "/subscriptions/1111111111111111111111/resourceGroups/myrgname/providers/Microsoft.Web/serverfarms/myfuncplan000",
"isSpot": false,
"isXenon": false,
"kind": "elastic",
"kubeEnvironmentProfile": null,
"location": "westus3",
"maximumElasticWorkerCount": 1,
"maximumNumberOfWorkers": 20,
"name": "myfuncplan000",
"numberOfSites": 0,
"numberOfWorkers": 1,
"perSiteScaling": false,
"provisioningState": "Succeeded",
"reserved": true,
"resourceGroup": "myrgname",
"sku": {
"capabilities": null,
"capacity": 1,
"family": "EP",
"locations": null,
"name": "EP1",
"size": "EP1",
"skuCapacity": null,
"tier": "ElasticPremium"
},
"spotExpirationTime": null,
"status": "Ready",
"subscription": "1111111111111111111111",
"tags": null,
"targetWorkerCount": 0,
"targetWorkerSizeId": 0,
"type": "Microsoft.Web/serverfarms",
"workerTierName": null,
"zoneRedundant": false
}
cli.knack.cli: Event: Cli.SuccessfulExecute []
cli.knack.cli: Event: Cli.PostExecute [<function AzCliLogging.deinit_cmd_metadata_logging at 0x0000026908980540>]
az_command_data_logger: exit code: 0
cli.main: Command ran in 3.945 seconds (init: 0.149, invoke: 3.796)
telemetry.main: Begin splitting cli events and extra events, total events: 1
telemetry.main: Finish splitting cli events and extra events, cli events: 1
telemetry.save: Save telemetry record of length 3949 in cache file under mypath.azure\telemetry\20260414035928014
telemetry.main: Begin creating telemetry upload process.
telemetry.process: Creating upload process: "C:\Program Files\Microsoft SDKs\Azure\CLI2\python.exe C:\Program Files\Microsoft SDKs\Azure\CLI2\Lib\site-packages\azure\cli\telemetry_init.pyc mypath.azure mypath.azure\telemetry\20260414035928014"
telemetry.process: Return from creating process 13908
telemetry.main: Finish creating telemetry upload process.
Expected behavior
A function app plan created running WIndows OS not Linux
Environment Summary
azure-cli: 2.85.0
azure-cli-core: 2.85.0
azure-cli-telemetry: 1.1.0
extensions {}
Additional context
No response
Describe the bug
When running
az functionapp plan createwith--sku EP1and--is-linux false, the resulting App Service Plan is created as Linux instead of Windows. The--is-linux falseflag is silently ignored. This behavior began occurring in recent CLI/platform versions and can be consistently reproduced regardless of resource group or region.Related command
az functionapp plan create
az functionapp plan create
--name myPlan--resource-group myResourceGroup
--location eastus--sku EP1 `
--is-linux false
Errors
Issue script & Debug output
az functionapp plan create --resource-group $resourceGroup --name $planName --location $location --sku EP1 --is-linux false --debug
cli.knack.cli: Command arguments: ['functionapp', 'plan', 'create', '--resource-group', 'myrgname', '--name', 'myfuncplan000', '--location', 'westus3', '--sku', 'EP1', '--is-linux', 'false', '--debug']
cli.knack.cli: init debug log:
Enable color in terminal.
Enable VT mode.
cli.knack.cli: Event: Cli.PreExecute []
cli.knack.cli: Event: CommandParser.OnGlobalArgumentsCreate [<function CLILogging.on_global_arguments at 0x0000026908259A80>, <function OutputProducer.on_global_arguments at 0x0000026908801B20>, <function CLIQuery.on_global_arguments at 0x000002690883F920>]
cli.knack.cli: Event: CommandInvoker.OnPreCommandTableCreate []
cli.azure.cli.core: Using packaged command index for profile 'latest'.
cli.azure.cli.core: Modules found from index for 'functionapp': ['azure.cli.command_modules.appservice', 'azure.cli.command_modules.serviceconnector']
cli.azure.cli.core: Loading command modules...
cli.azure.cli.core: Loaded command modules in parallel:
cli.azure.cli.core: Name Load Time Groups Commands
cli.azure.cli.core: serviceconnector 0.214 20 331
cli.azure.cli.core: appservice 0.327 88 299
cli.azure.cli.core: Total (2) 0.336 108 630
cli.azure.cli.core: Loaded 106 groups, 630 commands.
cli.azure.cli.core: Found a match in the command table.
cli.azure.cli.core: Raw command : functionapp plan create
cli.azure.cli.core: Command table: functionapp plan create
cli.knack.cli: Event: CommandInvoker.OnPreCommandTableTruncate [<function AzCliLogging.init_command_file_logging at 0x00000269089802C0>]
cli.azure.cli.core.azlogging: metadata file logging enabled - writing logs to 'mypath.azure\commands\2026-04-14.03-59-24.functionapp_plan_create.15952.log'.
az_command_data_logger: command args: functionapp plan create --resource-group {} --name {} --location {} --sku {} --is-linux {} --debug
cli.knack.cli: Event: CommandInvoker.OnPreArgumentLoad [<function register_global_subscription_argument..add_subscription_parameter at 0x00000269089C9E40>]
cli.knack.cli: Event: CommandInvoker.OnPostArgumentLoad []
cli.knack.cli: Event: CommandInvoker.OnPostCommandTableCreate [<function register_ids_argument..add_ids_arguments at 0x00000269089CA480>, <function register_global_policy_argument..add_global_policy_argument at 0x00000269089CA5C0>, <function register_cache_arguments..add_cache_arguments at 0x00000269089CA660>, <function register_upcoming_breaking_change_info..update_breaking_change_info at 0x00000269089CA700>]
cli.knack.cli: Event: CommandInvoker.OnCommandTableLoaded []
cli.knack.cli: Event: CommandInvoker.OnPreParseArgs []
cli.knack.cli: Event: CommandInvoker.OnPostParseArgs [<function OutputProducer.handle_output_argument at 0x0000026908801BC0>, <function CLIQuery.handle_query_parameter at 0x000002690883F9C0>, <function register_ids_argument..parse_ids_arguments at 0x00000269089CA520>]
cli.azure.cli.core.commands.client_factory: Getting management service client client_type=WebSiteManagementClient
cli.azure.cli.core.auth.persistence: build_persistence: location='mypath\.azure\msal_token_cache.bin', encrypt=True
cli.azure.cli.core.auth.binary_cache: load: mypath.azure\msal_http_cache.bin
urllib3.util.retry: Converted retries value: 1 -> Retry(total=1, connect=None, read=None, redirect=None, status=None)
msal.application: Broker enabled? True
azure.mgmt.web.v2024_11_01._utils.serialization: Readonly attribute name will be ignored in class <class 'azure.mgmt.web.v2024_11_01.models._models_py3.AppServicePlan'>
cli.azure.cli.core.auth.credential_adaptor: CredentialAdaptor.get_token_info: scopes=('https://management.core.windows.net//.default',), options={}
cli.azure.cli.core.auth.msal_credentials: UserCredential.acquire_token: scopes=['https://management.core.windows.net//.default'], claims_challenge=None, kwargs={}
msal.application: Cache hit an AT
msal.telemetry: Generate or reuse correlation_id: 2a07c32b-4a62-4afe-9e91-717fe3ee05d9
cli.azure.cli.core.sdk.policies: Request URL: 'https://management.azure.com/subscriptions/1111111111111111111111/resourceGroups/myrgname/providers/Microsoft.Web/serverfarms/myfuncplan000?api-version=2024-11-01'
cli.azure.cli.core.sdk.policies: Request method: 'PUT'
cli.azure.cli.core.sdk.policies: Request headers:
cli.azure.cli.core.sdk.policies: 'Content-Type': 'application/json'
cli.azure.cli.core.sdk.policies: 'Content-Length': '174'
cli.azure.cli.core.sdk.policies: 'Accept': 'application/json'
cli.azure.cli.core.sdk.policies: 'x-ms-client-request-id': '555555-555555-555555'
cli.azure.cli.core.sdk.policies: 'CommandName': 'functionapp plan create'
cli.azure.cli.core.sdk.policies: 'ParameterSetName': '--resource-group --name --location --sku --is-linux --debug'
cli.azure.cli.core.sdk.policies: 'User-Agent': 'AZURECLI/2.85.0 (MSI) azsdk-python-core/1.39.0 Python/3.13.11 (Windows-2025Server-10.0.26200-SP0)'
cli.azure.cli.core.sdk.policies: 'Authorization': '*****'
cli.azure.cli.core.sdk.policies: Request body:
cli.azure.cli.core.sdk.policies: {"location": "westus3", "sku": {"name": "EP1", "tier": "ElasticPremium"}, "properties": {"perSiteScaling": false, "reserved": true, "isXenon": false, "zoneRedundant": false}}
urllib3.connectionpool: Starting new HTTPS connection (1): management.azure.com:443
urllib3.connectionpool: https://management.azure.com/subscriptions/1111111111111111111111/resourceGroups/myrgname/providers/Microsoft.Web/serverfarms/myfuncplan000?api-version=2024-11-01 HTTP/1.1" 200 1828
cli.azure.cli.core.sdk.policies: Response status: 200
cli.azure.cli.core.sdk.policies: Response headers:
cli.azure.cli.core.sdk.policies: 'Cache-Control': 'no-cache'
cli.azure.cli.core.sdk.policies: 'Pragma': 'no-cache'
cli.azure.cli.core.sdk.policies: 'Content-Length': '1828'
cli.azure.cli.core.sdk.policies: 'Content-Type': 'application/json'
cli.azure.cli.core.sdk.policies: 'Expires': '-1'
cli.azure.cli.core.sdk.policies: 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
cli.azure.cli.core.sdk.policies: 'x-ms-request-id': '0ee19aa3-df7c-4838-b2b4-cf78e18cc3d5'
cli.azure.cli.core.sdk.policies: 'X-AspNet-Version': '4.0.30319'
cli.azure.cli.core.sdk.policies: 'X-Powered-By': 'ASP.NET'
cli.azure.cli.core.sdk.policies: 'x-ms-operation-identifier': 'tenantId=0000000000000,objectId=0000000000/westus3/2222222222222222'
cli.azure.cli.core.sdk.policies: 'x-ms-ratelimit-remaining-subscription-writes': '199'
cli.azure.cli.core.sdk.policies: 'x-ms-ratelimit-remaining-subscription-global-writes': '2999'
cli.azure.cli.core.sdk.policies: 'x-ms-correlation-request-id': '850170c6-7f07-4e4b-8108-518b22b66c5b'
cli.azure.cli.core.sdk.policies: 'x-ms-routing-request-id': 'WESTUS3:20260414T035927Z:850170c6-7f07-4e4b-8108-518b22b66c5b'
cli.azure.cli.core.sdk.policies: 'X-Content-Type-Options': 'nosniff'
cli.azure.cli.core.sdk.policies: 'X-Cache': 'CONFIG_NOCACHE'
cli.azure.cli.core.sdk.policies: 'X-MSEdge-Ref': 'Ref A: 855CAAA0F7F843B38AC3EEC579EE30FF Ref B: BY1AA1072319040 Ref C: 2026-04-14T03:59:26Z'
cli.azure.cli.core.sdk.policies: 'Date': 'Tue, 14 Apr 2026 03:59:27 GMT'
cli.azure.cli.core.sdk.policies: Response content:
cli.azure.cli.core.sdk.policies: Body is streamable
cli.knack.cli: Event: CommandInvoker.OnTransformResult [<function _resource_group_transform at 0x00000269089CA200>, <function x509_from_base64_to_hex_transform at 0x00000269089CA2A0>]
cli.knack.cli: Event: CommandInvoker.OnFilterResult []
{
"asyncScalingEnabled": false,
"elasticScaleEnabled": true,
"extendedLocation": null,
"freeOfferExpirationTime": null,
"geoRegion": "West US 3",
"hostingEnvironmentProfile": null,
"hyperV": false,
"id": "/subscriptions/1111111111111111111111/resourceGroups/myrgname/providers/Microsoft.Web/serverfarms/myfuncplan000",
"isSpot": false,
"isXenon": false,
"kind": "elastic",
"kubeEnvironmentProfile": null,
"location": "westus3",
"maximumElasticWorkerCount": 1,
"maximumNumberOfWorkers": 20,
"name": "myfuncplan000",
"numberOfSites": 0,
"numberOfWorkers": 1,
"perSiteScaling": false,
"provisioningState": "Succeeded",
"reserved": true,
"resourceGroup": "myrgname",
"sku": {
"capabilities": null,
"capacity": 1,
"family": "EP",
"locations": null,
"name": "EP1",
"size": "EP1",
"skuCapacity": null,
"tier": "ElasticPremium"
},
"spotExpirationTime": null,
"status": "Ready",
"subscription": "1111111111111111111111",
"tags": null,
"targetWorkerCount": 0,
"targetWorkerSizeId": 0,
"type": "Microsoft.Web/serverfarms",
"workerTierName": null,
"zoneRedundant": false
}
cli.knack.cli: Event: Cli.SuccessfulExecute []
cli.knack.cli: Event: Cli.PostExecute [<function AzCliLogging.deinit_cmd_metadata_logging at 0x0000026908980540>]
az_command_data_logger: exit code: 0
cli.main: Command ran in 3.945 seconds (init: 0.149, invoke: 3.796)
telemetry.main: Begin splitting cli events and extra events, total events: 1
telemetry.main: Finish splitting cli events and extra events, cli events: 1
telemetry.save: Save telemetry record of length 3949 in cache file under mypath.azure\telemetry\20260414035928014
telemetry.main: Begin creating telemetry upload process.
telemetry.process: Creating upload process: "C:\Program Files\Microsoft SDKs\Azure\CLI2\python.exe C:\Program Files\Microsoft SDKs\Azure\CLI2\Lib\site-packages\azure\cli\telemetry_init.pyc mypath.azure mypath.azure\telemetry\20260414035928014"
telemetry.process: Return from creating process 13908
telemetry.main: Finish creating telemetry upload process.
Expected behavior
A function app plan created running WIndows OS not Linux
Environment Summary
azure-cli: 2.85.0
azure-cli-core: 2.85.0
azure-cli-telemetry: 1.1.0
extensions {}
Additional context
No response