An Azure service that provides an event-driven serverless compute platform.
Hi @azuregk
Thank you for reaching out to Microsoft Q&A and also for laying out the diagnostics so clearly. From the symptoms, I would focus first on Functions host startup rather than the timer configuration itself.
Flex Consumption supports both inbound private endpoints and outbound VNet integration, so that combination is not documented as unsupported. However, NoScriptHost followed by Stopping means the Functions host is not becoming ready. When that happens, SyncTriggers cannot complete, and timer triggers will not be registered or run. Changing use_monitor or run_on_startup will not resolve that underlying host-readiness failure.
I think removing only the Function App private endpoint is a sensible isolation test. After redeploying, check whether:
-
SyncTriggerscompletes successfully. - Host health no longer reports
NoScriptHostorStopping. - Timer functions are discovered and begin firing normally.
If the app recovers, review the private-endpoint DNS and deployment-access path. Azure Functions documentation notes that private endpoint names must resolve correctly, and VNet-integrated apps use the DNS configuration of the VNet.
I would also verify the integration subnet itself: for Flex, it must be a dedicated subnet delegated to Microsoft.App/environments, sized at least /27 for a single app (/26 is recommended for multiple apps or higher scale). That subnet cannot also host private endpoints or service endpoints. For AzureWebJobsStorage, confirm that every required storage endpoint is reachable through the configured network path and DNS. The Functions runtime depends on its default storage account to maintain app health; when Storage private endpoints are used, Microsoft documents file, blob, and table as required, with queue also needed for Durable Functions.
In Application Insights, correlate the deployment timestamp and find the first startup error in traces, exceptions, and dependencies, before the SyncTriggers cancellation. In my experience, that first failure is much more useful than the final 100-second timeout and usually exposes a DNS, routing, dependency, package, or runtime-startup problem.
If the host still reaches NoScriptHost/Stopping after the inbound private endpoint is removed and a known-good package is deployed, I would open an Azure support request. Include the Function App resource ID, region, UTC timestamps, deployment/correlation IDs, full host and Kudu logs, Application Insights startup telemetry, and the VNet/private-endpoint/DNS design. At that point, support can determine whether a platform-side lifecycle or trigger-synchronization investigation is needed.
References:
- Azure Functions networking options
- Create and manage function apps in the Flex Consumption plan
- How to use a secured storage account with Azure Functions
Please 'Upvote' (Thumbs-up) and 'Accept' as an answer if the response was helpful. This will be bhelpful to other community members who face the same issue.
Best regards, Andrew S Taylor