Sentry с интеграцией с django бросает запрос KeyError

Я схожу с ума от этой проблемы, которая, как я полагаю, исходит от sentry-sdk для python, возможно, в сочетании с некоторыми другими зависимостями. У меня есть проект на Django 4.2 с sentry-sdk 2.13.0, который выбрасывает KeyError request каждый раз, когда что-то срабатывает на sentry, то есть если сообщается об ошибке, я получаю еще X ошибок, о которых сообщается KeyError request (да, это не просто 1 за каждый сделанный отчет). Меня смущает то, что исходная ошибка корректно отображается на sentry, поэтому я не могу сказать, что sentry-sdk не сообщает о проблеме. Более того, это происходит всякий раз, когда я вручную запускаю отчет об информации/предупреждении из кода в sentry.

Обратите внимание, что это стало происходить после обновления зависимостей проекта, особенно Django до версии 4.2.

Я также подумал, что это может быть проблема с context_processor, но context_processor для запроса находится в настройках (см. код ниже)

Любая помощь или предложение будут высоко оценены.

Вот мои настройки для часового:

import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration

sentry_sdk.init(
    dsn="XXXX",
    integrations=[DjangoIntegration()],
    server_name='XXXX',

    send_default_pii=True
)

А это трассировка стека для ошибки:

KeyError
'request'

django/template/context.py in __getitem__ at line 83

cms/templatetags/cms_tags.py in _get_empty_context at line 636

cms/templatetags/cms_tags.py in get_context at line 829

cms/templatetags/cms_tags.py in render_tag at line 810

classytags/core.py in render at line 142

django/template/base.py in render_annotated at line 966

django/template/base.py in render at line 1005

django/template/loader_tags.py in render at line 54

django/template/base.py in render_annotated at line 966

django/template/base.py in render at line 1005

django/template/base.py in _render at line 167

django/template/base.py in render at line 177

django/template/loader_tags.py in render at line 208

django/template/base.py in render_annotated at line 966

django/template/base.py in render at line 1005

django/template/loader_tags.py in render at line 63

django/template/base.py in render_annotated at line 966

django/template/base.py in render at line 1005

cms/templatetags/cms_tags.py in render_tag at line 426

classytags/core.py in render at line 142

django/template/base.py in render_annotated at line 966

django/template/base.py in render at line 1005

sekizai/templatetags/sekizai_tags.py in render_tag at line 86

classytags/core.py in render at line 142

django/template/base.py in render_annotated at line 966

django/template/base.py in render at line 1005

django/template/base.py in _render at line 167

django/template/loader_tags.py in render at line 157

django/template/base.py in render_annotated at line 966

django/template/base.py in render at line 1005

django/template/base.py in _render at line 167

django/template/loader_tags.py in render at line 157

django/template/base.py in render_annotated at line 966

django/template/base.py in render at line 1005

django/template/base.py in _render at line 167

django/template/base.py in render at line 175

django/template/backends/django.py in render at line 61

django/views/defaults.py in server_error at line 99

django/utils/decorators.py in _wrapper_view at line 134

django/core/handlers/exception.py in handle_uncaught_exception at line 185

django/core/handlers/exception.py in response_for_exception at line 140

django/core/handlers/exception.py in inner at line 57

django/utils/deprecation.py in __call__ at line 134

django/core/handlers/exception.py in inner at line 55

Определение процессоров контекста:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            ...
        ],
        'OPTIONS': {
            'context_processors': [
                'django.contrib.auth.context_processors.auth',
                'django.template.context_processors.debug',
                'django.template.context_processors.i18n',
                'django.template.context_processors.media',
                'django.template.context_processors.static',
                'django.template.context_processors.tz',
                'django.contrib.messages.context_processors.messages',
                'django.template.context_processors.request',
                'sekizai.context_processors.sekizai',
                'cms.context_processors.cms_settings',
                'website.context_processors.google_analytics'
            ],
            'loaders': [
                'django.template.loaders.filesystem.Loader',
                'django.template.loaders.app_directories.Loader',
                'admin_tools.template_loaders.Loader',
            ],
        },
    }
]

Если я попытаюсь воспроизвести исходную ошибку, которая вызвала все ошибки KeyErrors, не сообщая об этом с помощью sentry, я увижу только исходную ошибку и ни одной ошибки KeyError.

Я проверил stacktrace более подробно, но мне не удалось выяснить многого. Только то, что задействованы пакеты cms.

(не знаю, может ли это иметь значение, но я использую django-cms 3.11.6)

Глядя на трассировку стека, похоже, что что-то перезаписывает контекст шаблона. sentry-sdk делает некоторые исправления шаблона, но если он затрагивает контекст, то, насколько я могу судить, он просто добавляет информацию о трассировке<<<5>>

>

Что вы можете сделать, чтобы сузить круг проблем:

Вернуться на верх