An Azure service that provides a cloud content delivery network with threat protection.
AFD rule sets do not deploy to edge — rules attached to route never fire
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 afdCLI
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 purgecalls - Both portal and CLI for every operation, in case of UI-only sync issues
QUESTIONS
- Is "rule set deployment stuck at NotStarted while route deployment succeeds" a known issue?
- Is there a way to force-trigger rule set deployment from the customer side that I haven't tried?
- Does the
deploymentStatusfield 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?) - 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.