Seeing 403s being reported for GET /admin/vfs/site/wwwroot in Azure Function App

yj133 40 Reputation points
2026-07-28T02:38:18.97+00:00

Just trying to figure out if I've misconfigured something and maybe affecting something with the platform.

I have a .NET Azure Function App running under a Flex Consumption Plan. Under networking, I've

  • Enabled from select virtual networks and IP addresses
  • Main site
    • Unmatched rule action - Deny
    • Added 15 IPv4 block rules - Allow

The Function App has been setup to use OpenTelemetry with distributed tracing. The 403s for GET /admin/vfs/site/wwwroot are being reported under the requests table in Application Insights a few times across 24 hours.

Under the Function App > Diagnose and solve problems > Networking > Access Restrictions, it lists the same IP address with some error messages including:

  • No matching rule found. Denied by 'Deny' default action
  • Unauthorized clientip ()Cold start request for <function app name> site, <function app domain> hostname, 'success:200:OK' serverList, '7/27/2026 5:22:38 AM' cache expiry

These don't get reported at all in Application Insights if allow the Function App to be accessible from all networks.

Any insight or confirmation as to whether I should ignore or not would be appreciated.

Thanks!

Azure Functions
Azure Functions

An Azure service that provides an event-driven serverless compute platform.


Answer accepted by question author
Christos Panagiotidis 3,546 Reputation points
2026-07-28T06:13:04.11+00:00

Your access restriction is producing the 403; OpenTelemetry only makes it visible. With the unmatched action set to Deny, Azure Functions rejects requests whose source matches none of the 15 allow rules. /admin/vfs/site/wwwroot is an administrative path, not a function route, and the diagnostic entry identifies it as cold-start-related traffic.

Correlate the timestamps in Application Insights with AppServiceIPSecAuditLogs, checking CIp, Result, CsHost, and Details. Confirm that normal triggers, cold starts, and deployments succeed and that Function logs show no startup failures. Keep the deny-by-default policy; do not add a broad Azure service-tag allowance merely to suppress telemetry. Ensure legitimate clients and deployment agents have explicit IP or virtual-network rules, and review SCM-site restrictions separately.

If invocations succeed, these isolated denials can be treated as blocked administrative probes. If they coincide with missed triggers or failed cold starts, collect the timestamps and diagnostic output and open an Azure Support case.

Was this answer helpful?

1 person found this answer helpful.
0 comments No comments

2 additional answers

Sort by: Most helpful
  1. Pravallika KV 18,850 Reputation points Microsoft External Staff Moderator
    2026-07-28T06:56:07.57+00:00

    Hi @yj133 ,

    Those 403s are almost certainly coming from your Function App’s own Networking → Access Restrictions, not from OpenTelemetry or anything platform-side. The key clue is that the Access Restrictions diagnostics show messages like:

    “No matching rule found. Denied by 'Deny' default action” - Requests attempting to reach /admin/vfs/site/wwwroot (a path typically associated with the Kudu/admin-side filesystem access)

    • The fact that you don’t see the 403s in Application Insights when you allow the Function App from all networks strongly supports that the blocked traffic is coming from an address/range that is not matching your allow rules, so it falls through to the default Deny.
    • What /admin/vfs/site/wwwroot likely represents

    Even when you aren’t explicitly calling it, various platform components, management/diagnostic tooling, or other automated clients can attempt to access admin/Kudu-style endpoints. If those calls come from an IP that isn’t allowed, Access Restrictions will return 403.

    If:

    • the 403s only appear occasionally (e.g., a few times across 24 hours),
    • they disappear when networking restrictions are opened,
    • and your actual function endpoints/HTTP triggers are working,

    then it’s expected noise from blocked background/management traffic.

    However, it’s still worth validating that the blocked traffic is not coming from something you actually rely on (e.g., APIM, health checks, monitoring agents, internal integrations).

    1. Check whether your “real” traffic is succeeding
      • Compare Application Insights for successful requests to your function endpoints vs. the /admin/vfs/site/wwwroot 403s.
    2. Review which IPs are attempting access
      • In the Function App Networking → Access Restrictions diagnostics, look closely at the specific client IP(s) being denied.
    3. Consider allowing the specific source if it’s legitimate
      • If you identify that the denied IP belongs to something you need (monitoring, a specific integration, etc.), add an appropriate allow rule.
    4. If it’s only internal/unauthorized attempts, you can likely leave it as-is
      • With the default action set to Deny, occasional 403s for admin paths are commonly consistent with “someone/thing tried, but you intentionally blocked it.”

    The “these don’t get reported at all when accessible from all networks” behavior suggests the requests are still happening, but they are either:

    • never reaching the app when blocked (so only show up in restricted diagnostics), or
    • only being logged when restrictions are evaluated.

    Either way, the Access Restrictions messages you pasted already confirm the denial reason.

    Hope this helps!


    If the resolution was helpful, kindly take a moment to click on User's imageand click on Yes for was this answer helpful. And, if you have any further query do let us know.

    Was this answer helpful?

    1 person found this answer helpful.

  2. kagiyama yutaka 4,915 Reputation points
    2026-07-29T07:08:34.3966667+00:00

    I think the 403s come from the SCM side, and Azure Access Restrictions give 403 when no allow rule matches, so adding your IP or network under SCM → Access restrictions lines up with the behavior and keeps the app running fine. 

    Was this answer helpful?

    0 comments No comments

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.