diff --git a/CHANGELOG.md b/CHANGELOG.md index 5853849236..1e0346b6ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,7 +20,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ([#728](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/728)) - `opentelemetry-propagators-aws-xray` Rename `AwsXRayFormat` to `AwsXRayPropagator` ([#729](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/729)) - +- `opentelemetry-instrumentation-flask` Fix `RuntimeError: Working outside of request context` + ([#734](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/734)) ### Changed - `opentelemetry-instrumentation-jinja2` Allow instrumentation of newer Jinja2 versions. diff --git a/instrumentation/opentelemetry-instrumentation-flask/src/opentelemetry/instrumentation/flask/__init__.py b/instrumentation/opentelemetry-instrumentation-flask/src/opentelemetry/instrumentation/flask/__init__.py index d2210eb539..3897288937 100644 --- a/instrumentation/opentelemetry-instrumentation-flask/src/opentelemetry/instrumentation/flask/__init__.py +++ b/instrumentation/opentelemetry-instrumentation-flask/src/opentelemetry/instrumentation/flask/__init__.py @@ -94,8 +94,9 @@ def _wrapped_app(wrapped_app_environ, start_response): wrapped_app_environ[_ENVIRON_STARTTIME_KEY] = _time_ns() def _start_response(status, response_headers, *args, **kwargs): - if excluded_urls is None or not excluded_urls.url_disabled( - flask.request.url + if flask.request and ( + excluded_urls is None + or not excluded_urls.url_disabled(flask.request.url) ): span = flask.request.environ.get(_ENVIRON_SPAN_KEY)