Skip to content

Traces are silently dropped in long-running workers #2135

@kiansdi

Description

@kiansdi

[OpenAI Agents SDK] Traces are silently dropped in long-running workers (Celery, FastAPI background tasks, etc.)

Package: openai-agents (Python)
Date: November 2025
Impact: High – many production users run agents via background workers

Description

When using agents.trace() inside long-living processes (Celery workers, FastAPI background tasks, RQ, Dramatiq, etc.), traces are created correctly (valid trace IDs in logs, nesting works) but never appear on https://platform.openai.com/traces.

Reason: the internal BatchTraceProcessor only flushes automatically on process shutdown or when the buffer is full. Long-running workers never shut down → traces remain buffered forever.

Minimal Reproduction

# Celery task – trace never reaches the dashboard
@celery.task
def demo():
    with agents.trace("celery_test"):
        Agent(model="gpt-4o-mini").run("Say hello")
    # ← missing flush → trace lost

Running the exact same code as a standalone script works because shutdown triggers the flush.

Working Fix (3 lines)

from agents.tracing import GLOBAL_TRACE_PROVIDER

def flush_traces():
    GLOBAL_TRACE_PROVIDER._multi_processor.force_flush()

Call flush_traces() at the end of every task/pipeline:

with agents.trace("my_job"):
    # all agent calls
    ...
flush_traces()   # ← required in workers

Result: full nested traces appear instantly on the dashboard.

Suggested Documentation Addition

Note for long-running workers
In Celery, FastAPI background tasks, RQ, Dramatiq, or any long-living worker process, the trace processor does not auto-flush.
Call flush_traces() (or a future public API) at the end of each job, otherwise traces will remain buffered and never appear on the dashboard.

Why this is hard to discover

  • No error/warning is emitted
  • All top models (Gemini 3, Claude 4.5, Codex-5, etc.) suggest the usual suspects (env vars, async context, .trace_id) – none solve it
  • The real answer did not exist publicly until now

Thank you for the excellent Agents SDK – adding this short note would save the community weeks of debugging pain.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions