Healthy app, no errors, no executions — check the storage account
Triggers resumed and the monitoring gap that allowed a silent multi-day outage was closed. The storage dependency is now part of the network team's change checklist rather than tribal knowledge.
Overview
The Azure Functions runtime depends on its associated storage account for trigger state, timer schedules, blob receipts, singleton locks, and function key storage. When that storage account becomes unreachable — a firewall rule, a private endpoint change, a rotated key — the app can appear healthy while triggers silently stop firing. It is one of the least obvious failure modes on the platform, because nothing in the application code references storage.
Challenge
Timer-triggered and blob-triggered functions stopped executing with no errors and no failed invocations, because there were no invocations at all. A network change had enabled storage firewall rules that excluded the function app's outbound addresses. Monitoring alerted on failure rate rather than on expected execution count, so an absence of executions produced no alert at all.
Environment
Azure Functions on an Elastic Premium plan with timer, blob, and queue triggers, in a subscription undergoing a network security tightening program. AceMQ works on the customer's function apps, configuration, and integration design — Microsoft operates the platform.
Approach
AceMQ started from the runtime's own dependencies rather than the application code, checking storage account reachability, the connection setting the runtime resolves, and the trigger state containers it maintains. Once connectivity was restored we rebuilt the monitoring around expected execution counts, since a failure-rate alert can never detect a trigger that never fires.
Solution
- 1Verified the runtime's storage account reachability, connection settings, and trigger state containers first
- 2Corrected storage firewall and private endpoint configuration to permit the function app's runtime access
- 3Separated the runtime's own storage account from application data storage so their policies diverge safely
- 4Replaced failure-rate alerting with expected-execution-count alerting per trigger
- 5Added a synthetic heartbeat function to prove the trigger path end to end
- 6Documented the runtime's storage dependency for the network team's change review process
Outcome
Triggers resumed and the monitoring gap that allowed a silent multi-day outage was closed. The storage dependency is now part of the network team's change checklist rather than tribal knowledge.
Technologies
Related Use Cases
Azure Durable Functions Orchestration Support
Recovering Durable Functions orchestrations stuck mid-flight because non-deterministic orchestrator code broke replay after a deployment.
Azure Functions Cost and Scaling Assessment
Reviewing hosting plan choice, instance scaling behavior, and cold start impact across an Azure Functions estate to align cost with actual workload shape.
Facing a Azure Functions Production Issue?
AceMQ's senior Azure Functions engineers have handled this exact type of engagement before. Whether you need architectural guidance, hands-on remediation, or an ongoing managed partnership, we're ready to help.