@Johan Runsten Thanks for reaching out and apology for the inconvenience due to this issue.
It would not be possible to pinpoint the root cause, and this would need to be reviewed from the backend logs and I believe you have already reached out to us over one on one support request and yes this could be one of the reasons where it may have missed execution. The same is documented here.
For your 1st and 2nd query the document covers. It's the best effort and it may be missed. Yes, switching to event grid would be better option as documented.
Polling works as a hybrid between inspecting logs and running periodic container scans. Blobs are scanned in groups of 10,000 at a time with a continuation token used between intervals. If your function app is on the Consumption plan, there can be up to a 10-minute delay in processing new blobs if a function app has gone idle. Warning Storage logs are created on a "best effort" basis. There's no guarantee that all events are captured. Under some conditions, logs may be missed. If you require faster or more reliable blob processing, you should instead implement one of the following strategies:
- Change your binding definition to consume blob events instead of polling the container. You can do this in one of two ways:
- Add the
source
parameter with a value ofEventGrid
to your binding definition and create an event subscription on the same container. For more information, see Tutorial: Trigger Azure Functions on blob containers using an event subscription.- Replace the Blob Storage trigger with an Event Grid trigger using an event subscription on the same container. For more information, see the Image resize with Event Grid tutorial.
- Consider creating a queue message when you create the blob. Then use a queue trigger instead of a blob trigger to process the blob.
- Switch your hosting to use an App Service plan with Always On enabled, which may result in increased costs.