Skip to content

Geo-restore from Zone-Redundant HA MySQL Flexible Server to paired region (UK West) fails with HaNotSupportedForLocationNotSupportZRS #33813

Description

@NeilRedfern

Describe the bug

Our documented DR procedure relies on geo-restoring a production Azure Database for MySQL Flexible Server from UK South into the paired region UK West during a regional outage.

The source server is configured with Zone-Redundant HA and geo-redundant backups.

Geo-restore now fails with:
HaNotSupportedForLocationNotSupportZRS

This blocks our ability to validate and execute regional disaster recovery.

This appears to be due to PR 33428 removing the ability to specific the storage redundancy and defaulting to mirror the source server.

Related command

az mysql flexible-server geo-restore
--location ukwest
--source-server
--name
--resource-group

Errors

MySQL only supports High Availability in locations that support ZRS. The location doesn't support ZRS.
Code: HaNotSupportedForLocationNotSupportZRS
Message: MySQL only supports High Availability in locations that support ZRS. The location doesn't support ZRS.

Issue script & Debug output

debug.log

Expected behavior

It should be possible to specific that zonal storage is not required, as many smaller regions within Azure do not have availability zones.

Environment Summary

az version 2.87.0

Additional context

No response

Activity

  1. added
    bugThis issue requires a change to an existing behavior in the product in order to be resolved.
    on Jul 30, 2026
  2. yonzhan commented on Jul 30, 2026

    @yonzhan
    Collaborator

    Thank you for opening this issue, we will look into it.

  3. x-engineering-agent commented on Jul 30, 2026

    @x-engineering-agent
    Contributor

    Bug Analysis

    az mysql flexible-server geo-restore from a source server configured with Zone-Redundant HA (ZRS) fails with HaNotSupportedForLocationNotSupportZRS when the target region (e.g. UK West) does not support Availability Zones / ZRS.

    Root cause: PR #33428 removed the ability to explicitly specify storage redundancy on geo-restore, and the command now always mirrors the source server's storage redundancy (ZRS) onto the target server. When the target region does not support ZRS, the backend rejects the request with HaNotSupportedForLocationNotSupportZRS, even though the user only wants geo-redundant backups without zone-redundant HA in the DR region.

    Suggested fix: Restore the ability to control storage/HA redundancy on geo-restore (e.g. reintroduce or expose a --zone/--storage-redundancy/HA-mode parameter, or fall back to non-ZRS HA when the target region lacks ZRS support) in src/azure-cli/azure/cli/command_modules/rdbms (MySQL flexible-server geo-restore path). Look at what PR #33428 changed to understand the previous behavior and reintroduce equivalent control without regressing that PR's original fix.

    Repro:

    az mysql flexible-server geo-restore \
      --location ukwest \
      --source-server <resource-id> \
      --name <server-name> \
      --resource-group <rg>
    

    Source server: UK South, Zone-Redundant HA + geo-redundant backups. Target: UK West (no ZRS support). Fails today; blocks documented DR procedures for regions without AZ support.

    Use this EXACT PR title: [MySQL] Fix #33813: az mysql flexible-server geo-restore: restore ZRS-not-supported error for geo-restore to non-ZRS regions

    PR title & description format (required)

    This repo enforces a PR format (guide). Please author the PR exactly as follows or CI's Check the Format of Pull Request Title and Content will fail.

    Use this EXACT PR title (copy verbatim, do not reword):

    [MySQL] Fix #33813: `az mysql flexible-server geo-restore`: restore ZRS-not-supported error for geo-restore to non-ZRS regions
    

    Keep the backticks around the command and the Fix #33813: prefix. You may only adjust the wording after the command (the final summary) if the fix changes; the [MySQL] prefix, issue link, and backticked command must stay.

    Description — follow the PR template and fill in:

    • Link the issue — start the Description with a closing keyword so the PR auto-links and closes it: Fixes #33813.
    • Related command — the az ... command this affects.
    • Description (mandatory) — why the bug happens, what you changed, and the resulting behavior.
    • Testing Guide — example command(s) showing the fix works.
    • History Notes — leave the title to drive the history note, or add extra lines in the same format (component in brackets + the command in backticks), e.g. [MySQL] `az <command>`: <note>.
    • Keep the template checklist and tick the items you've satisfied.

    Posted by agent-assist (autonomous bug-fix pipeline).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Auto-AssignAuto assign by botMySQLService AttentionThis issue is responsible by Azure service team.act-codegen-extensibility-squadbugThis issue requires a change to an existing behavior in the product in order to be resolved.customer-reportedIssues that are reported by GitHub users external to the Azure organization.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions