Share via

AFD rule sets do not deploy to edge — rules attached to route never fire

Mark Watson 0 Reputation points
2026-05-14T00:04:29.7666667+00:00

I have an Azure Front Door Standard profile where rule sets do not deploy

to the edge. Origin Path on the same route works correctly, which suggests

the issue is specific to rule set deployment rather than the profile as a

whole. I'd appreciate guidance on whether this is a known issue, what

might cause it, and whether the fix is to recreate the profile or

something else.

ENVIRONMENT

  • AFD Profile: Standard tier
  • One endpoint with one custom domain (validated, Active)
  • One route with patterns /docs and /docs/*
  • One origin group with one origin (public HTTPS origin, host header set correctly)
  • Created via Azure portal (Custom create), modified via portal and az afd CLI

SETUP THAT DOES NOT WORK

  • Create a rule set
  • Add a URL rewrite rule: condition UrlPath BeginsWith /docs/, action `UrlRewrite source /docs/ destination /target-path/ preserveUnmatchedPath true`
  • Attach the rule set to the route
  • Wait 30 minutes (and also 10+ hours separately)
  • Expected: requests to /docs/foo arrive at origin as /target-path/foo
  • Actual: requests arrive at origin as /docs/foo (no rewrite occurs)

The origin's "host unknown" response confirms AFD is forwarding the

unmodified path. The response includes x-azure-ref, so AFD is in the

request path; it just isn't applying the rule.

CONTROL PLANE STATE

az afd rule list ... -o yaml shows:

provisioningState: Succeeded

deploymentStatus: NotStarted

The deploymentStatus never advances beyond NotStarted, even after >10

hours of waiting with no further config changes.

az afd route show ... --query ruleSets confirms the rule set is

correctly attached at the API level.

WHAT WORKS ON THE SAME ROUTE

Setting originPath on the route to /target-path produces the correct

behaviour — requests for /docs/foo arrive at origin as /target-path/foo.

This proves the route's edge-sync is healthy. Only rule set deployment

is failing.

WHAT I'VE TRIED

  • Create/delete/recreate the rule, multiple times
  • Delete the entire rule set, create a new one with a different name
  • Detach and re-attach the rule set to the route (portal and CLI)
  • Force route redeployment via disable/enable cycle
  • Force route redeployment by changing patterns-to-match
  • Multiple az afd endpoint purge calls
  • Both portal and CLI for every operation, in case of UI-only sync issues

QUESTIONS

  1. Is "rule set deployment stuck at NotStarted while route deployment succeeds" a known issue?
  2. Is there a way to force-trigger rule set deployment from the customer side that I haven't tried?
  3. Does the deploymentStatus field on rules actually reflect data-plane state, or is it informational only? (If informational, what's the authoritative way to verify rule deployment short of curl-testing behaviour?)
  4. If the profile needs to be recreated to recover rule set functionality, is that documented anywhere as a known recovery path?

For now I'm using Origin Path as a workaround, which is functional but

limits me to a single path transformation per route and doesn't support

URL redirects. The redirects in particular I'd like to do via rule sets

long-term.

Any pointers appreciated.

Azure Front Door
Azure Front Door

An Azure service that provides a cloud content delivery network with threat protection.


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.