Expected Behavior
With host.json telemetryMode: OpenTelemetry and app setting PYTHON_ENABLE_OPENTELEMETRY=true, async functions should invoke normally (the worker should either initialize the OpenTelemetry trace-context propagator or no-op safely)
Actual Behavior
Every async invocation returns HTTP 500. In v2 worker_init (runtimes/v2/azure_functions_runtime/handle_event.py), PYTHON_ENABLE_OPENTELEMETRY=true only calls otel_manager.set_otel_libs_available(True) and never calls update_opentelemetry_status() (unlike the PYTHON_APPLICATIONINSIGHTS_ENABLE_TELEMETRY path). The propagator stays None, so per-invocation context activation crashes:
AttributeError: 'NoneType' object has no attribute 'extract'
File ".../azure_functions_runtime/otel.py", line 112, in configure_opentelemetry
ctx = otel_manager.get_trace_context_propagator().extract(carrier)
Removing the setting makes the app healthy. Appears to be the crash manifestation of #1870.
Steps to Reproduce
- Deploy a Python 3.13 Flex Consumption function app with an async HTTP trigger.
host.json: { "version": "2.0", "telemetryMode": "OpenTelemetry" }.
- Add app setting
PYTHON_ENABLE_OPENTELEMETRY=true.
- Call any async function -> HTTP 500 with the AttributeError above.
- Remove
PYTHON_ENABLE_OPENTELEMETRY -> healthy.
Relevant code being tried
host.json: `{ "version": "2.0", "telemetryMode": "OpenTelemetry" }`
App setting: PYTHON_ENABLE_OPENTELEMETRY=true
(App also calls azure.monitor.opentelemetry.configure_azure_monitor(...) at startup; removing that call does not change the crash.)
Relevant log output
AttributeError: 'NoneType' object has no attribute 'extract'
File ".../azure_functions_runtime/otel.py", line ~112, in configure_opentelemetry
ctx = otel_manager.get_trace_context_propagator().extract(carrier)
requirements.txt file
azure-functions
azure-functions-durable
azure-monitor-opentelemetry
Where are you facing this problem?
Production Environment (explain below)
Function app name
No response
Additional Information
Hosting: Azure Functions Flex Consumption (FC1), Python 3.13, v2 azure_functions_runtime.
Related:
#1870 (worker-side auto-init gap),
#1626 (late context propagation).
Suggested fix: call update_opentelemetry_status() in the PYTHON_ENABLE_OPENTELEMETRY branch of worker_init (symmetric to the App Insights path), and/or add a None guard in configure_opentelemetry() .
Expected Behavior
With
host.jsontelemetryMode: OpenTelemetryand app settingPYTHON_ENABLE_OPENTELEMETRY=true, async functions should invoke normally (the worker should either initialize the OpenTelemetry trace-context propagator or no-op safely)Actual Behavior
Every async invocation returns HTTP 500. In v2
worker_init(runtimes/v2/azure_functions_runtime/handle_event.py),PYTHON_ENABLE_OPENTELEMETRY=trueonly callsotel_manager.set_otel_libs_available(True)and never callsupdate_opentelemetry_status()(unlike thePYTHON_APPLICATIONINSIGHTS_ENABLE_TELEMETRYpath). The propagator stays None, so per-invocation context activation crashes:Removing the setting makes the app healthy. Appears to be the crash manifestation of #1870.
Steps to Reproduce
host.json:{ "version": "2.0", "telemetryMode": "OpenTelemetry" }.PYTHON_ENABLE_OPENTELEMETRY=true.PYTHON_ENABLE_OPENTELEMETRY-> healthy.Relevant code being tried
Relevant log output
requirements.txt file
Where are you facing this problem?
Production Environment (explain below)
Function app name
No response
Additional Information
Hosting: Azure Functions Flex Consumption (FC1), Python 3.13, v2 azure_functions_runtime.
Related:
#1870 (worker-side auto-init gap),
#1626 (late context propagation).
Suggested fix: call update_opentelemetry_status() in the PYTHON_ENABLE_OPENTELEMETRY branch of worker_init (symmetric to the App Insights path), and/or add a None guard in configure_opentelemetry() .