An Azure service that provides an event-driven serverless compute platform.
Hello Adam,
Welcome to the Microsoft Q&A and thank you for posting your questions here.
I understand that your Azure Function does not recognize or trigger from a once-daily TimerTrigger, but a trigger every 2 or 3 minutes works.
This is daily reconciliation job and is not firing and that the HTTP webhook also becomes unavailable after the Function App host stops. This affects both scheduled reconciliation and webhook processing, so the important issue is not the NCRONTAB expression alone. It is whether the app can start a new instance when the daily timer or an HTTP request arrives.
The following expression is valid: [TimerTrigger("0 0 0 * * *")] Azure Functions timer schedules use six-field NCRONTAB syntax, including the seconds field. This expression runs daily at 00:00:00, normally in UTC. The working expression 0 */2 * * * * runs every two minutes. Therefore, the daily expression does not need to be changed to a 24-hour interval. .NET isolated TimerTrigger documentation Also, .NET 10 is supported by Azure Functions runtime 4.x when the application uses the isolated-worker model, so downgrading the application is not indicated by the available evidence..NET isolated-worker guidance
The log shows that abnormal behavior is that the daily timer does not produce an invocation and, according to the question, the HTTP endpoint cannot reactivate the application after the host stops. That points to a broader cold-start or scale-from-zero problem rather than a malformed timer expression.
The customer-visible logs are not sufficient to distinguish between failed specialization, inaccessible deployment or host storage, worker-startup failure, stale trigger metadata, and an Azure platform allocation issue. The following procedure isolates those possibilities without repeating the restart and trigger-synchronization actions already completed.
What you need to do is to
- Keep the daily schedule in configuration by using an application setting for the schedule. Do not use
RunOnStartup = trueas a workaround. TimerTrigger samples use an application setting for the schedule. - https://learn.microsoft.com/en-us/samples/azure-samples/functions-quickstart-dotnet-azd-timer/starter-timer-trigger-csharp/ Also check that this setting is not present with a value oftrue: AzureWebJobs.Reconciliation.Disabled - Validate the application as an isolated-worker project and do not mix those packages with the in-process package families such as Microsoft.NET.Sdk.Functions and Microsoft.Azure.WebJobs.Extensions. - https://learn.microsoft.com/en-us/azure/azure-functions/dotnet-isolated-process-guide, https://learn.microsoft.com/en-us/azure/azure-functions/dotnet-isolated-in-process-differences then create a clean release build.
- Because the current deployment is described only as “manual from the Azure portal,” publish the validated build once using Core Tools: func azure functionapp publish <FUNCTION_APP_NAME> Azure Functions deployment technologies and do not repeat restarts or manual trigger synchronization after this deployment unless a specific diagnostic result requires it.
- After the app has stopped or scaled down, invoke the timer function through the administrative endpoint. The master Manually run a non-HTTP function and also send a direct request to the
Webhookendpoint after scale-down and record the HTTP status, response body, and UTC timestamp. - Test a near-future wall-clock schedule by temporarily set the schedule to a specific UTC time five to ten minutes ahead. For example, to test at 18:35 UTC: ReconciliationSchedule = 0 35 18 * * * do not use the every-two-minute expression for this test. A specific future occurrence more closely tests the same wake-up behavior required by the midnight schedule.
- If the clean deployment still fails, deploy the exact same published package to a new test Function App with equivalent: Hosting plan. Region. Runtime. Application settings. Managed identity. Storage access. and Network configuration. Do not rebuild the package between the two deployments.
I hope this is helpful. Please! Do not hesitate to let me know if you have any other questions, steps or clarifications.
Please do not close the thread by upvoting and accepting the answer if any part of it is helpful.