fix(api): silence opentelemetry.context error reports to Sentry on cloud (#39841)

This commit is contained in:
Bond Zhu 2026-07-31 13:32:02 +08:00 committed by GitHub
parent 0d8c02ca62
commit c562f78d4f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -7,6 +7,7 @@ def init_app(app: DifyApp):
import sentry_sdk
from sentry_sdk.integrations.celery import CeleryIntegration
from sentry_sdk.integrations.flask import FlaskIntegration
from sentry_sdk.integrations.logging import ignore_logger
from werkzeug.exceptions import HTTPException
from graphon.model_runtime.errors.invoke import InvokeRateLimitError
@ -45,3 +46,12 @@ def init_app(app: DifyApp):
release=f"dify-{dify_config.project.version}-{dify_config.COMMIT_SHA}",
before_send=before_send,
)
if dify_config.BILLING_ENABLED:
# Cloud only. `opentelemetry.context.detach()` catches its own failures and reports
# them through `logger.exception`, so a double-detach surfaces as an error event
# rather than as a raised exception. Under gevent this can fire about once per
# workflow run, which is enough volume to crowd real errors out of the issue stream.
# Self-hosted deployments rarely see enough of it to be worth silencing, and the
# records still reach the normal logging handlers either way.
ignore_logger("opentelemetry.context")