Azure / Azure/azure-functions-host

Function App on TimerTrigger does not fire on the hour every hour

Open
#8,254 7 comments 0 reactions 0 assignees View on GitHub
Needs: Attention :wave:
Dominant language
C#
Stars
2k
Forks
482
Avg merge
2d 12h
Merged PRs (30d)
38

Description

We have a function set to run on a timer trigger on the hour; however some hours it fires a few seconds early and other hours it does not fire at all as can be seen in this screenshot, you can see that nothing was fired at all at 21:00 last night, or 1am or 8am this morning

We are relying on this firing accurately on the hour, even if its a few seconds late is okay so long as its on the hour before the minute past; but certainly not early or missing completely.

We are running the app in our App Service Environment and it is set to "Always On".

![image](https://user-images.githubusercontent.com/1733292/159682376-7e14be96-a8c1-4a58-8bea-4628b1cad7ac.png)

#### Investigative information

Please provide the following:

- Timestamp: 2022-03-22 21:00 / 2022-03-23 01:00 / 2022-03-23 05:00 / 2022-03-23 08:00
- Function App version: Runtime Version ~2
- Function App name: PawaDatabaseJobs
- Function name(s) (as appropriate): timed-exports
- Invocation ID: obviously havent got one for missing invocations, but here is one for one just before: `Executing 'Functions.timed-exports' (Reason='Timer fired at 2022-03-23T04:59:59.9963753+00:00', Id=d30761f4-cd5b-4b4f-9650-824ae31df011)`
- Region: North Europe

#### Repro steps

Not really reproducible, but you can see the issue in the screenshot and the bindings below.

#### Expected behavior

A timer trigger is fired on the hour every hour.

#### Actual behavior

The timer is not firing every hour and sometimes its a few seconds before, but the missing triggers are the most important.

#### Related information

Provide any related information

* Programming language used : Node
* Links to source
* Bindings used:
```json
"bindings": [
{
"name": "EveryHour",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 0 * * * *"
}
],
```

Contributor guide

Open the contributing guide

Research direction

Start with the timerTrigger binding and its schedule, `0 0 * * * *`, in the reported Node Function App running on runtime ~2. Review the invocation log around the listed timestamps and compare the missed and early firings, including the provided 04:59:59.9963753 entry. Done means the cause of missed or early hourly executions is identified and a verified fix or clear limitation is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, node.js
Domain
backend, cloud
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.