**TL;DR:** Symptom: Azure Function trigger never fires: binding not registered Cause: The Functions host does not know the trigger binding, almost always because the extension bundle is missing from host.json, or FUNCTIONS_WORKER_RUNTIME is wrong so the worker never starts. CONFIRM IT CONFIRM: host log on func start or in the portal log stream: 'The binding type(s) ... are not registered' = missing bundle. Check host.json for the extensionBundle block and app settings for FUNCTIONS_WORKER_RUNTIME.

## The fix

SYMPTOM
Azure Function trigger never fires: binding not registered

CONFIRM IT
CONFIRM: host log on `func start` or in the portal log stream: 'The binding type(s) ... are not registered' = missing bundle. 'Did not find functions with language [x]' = wrong worker runtime. Check host.json for the extensionBundle block and app settings for FUNCTIONS_WORKER_RUNTIME.

FIX
FIX: add the extension bundle to host.json (`Microsoft.Azure.Functions.ExtensionBundle`, version `[4.*, 5.0.0)`), set FUNCTIONS_WORKER_RUNTIME to the right language, redeploy. For Service Bus/Event Hub triggers also confirm the connection app setting exists.

VERIFY
VERIFY: host log shows 'Host started' with the function listed; trigger it (HTTP call or queue message) and see the invocation log.

## When to use this

- This covers exactly what the title says: Diagnose.
- You are setting this up for the first time, or auditing an existing setup.
- You want the key gotchas in one place before you start.

## When not to use this

- You are doing a different workflow with Diagnose; these steps are specific to the title above.
- You need the full reference docs; this is the short path, not the manual.

## Why it happens

CAUSE
The Functions host does not know the trigger binding, almost always because the extension bundle is missing from host.json, or FUNCTIONS_WORKER_RUNTIME is wrong so the worker never starts.