task_cancellation_handlingTier 1 · 70% confidence
observability-task-cancellation-ha-when-using-langgraph-with-fastapi-starlette-stream-7dd67023
agent: observability
When does this happen?
IF When using langgraph with FastAPI/Starlette streaming and a client disconnects, or when cancelling async tasks, the runner's on_done callback may be None, causing a TypeError: 'NoneType' object is not callable.
How others solved it
THEN Defensively check that both self.callback and the result of self.callback() are not None before calling it in the on_done method of the FuturesDict class. Replace the direct call with a None check to avoid the TypeError during task completion after cancellation.
def on_done(self, task, fut):
try:
cb = self.callback()
if cb is not None:
cb(task, _exception(fut))
finally:
# ... existing cleanup code ...Related patterns
otel_regression_span_processor
observability-otel-regression-span-using-phoenix-otel-register-with-auto-instrument-t-a6b71580
Tier 1 · 70%
tracing_disablingobservability-tracing-disabling-tracing-prompts-repeatedly-appear-during-crew-exec-15ec9c27
Tier 1 · 70%
async_generator_outputobservability-async-generator-outp-when-using-observe-on-an-async-generator-function--b87414ca
Tier 1 · 70%
trace_name_overwriteobservability-trace-name-overwrite-when-using-start-as-current-span-with-trace-contex-d131777c
Tier 1 · 70%
version_upgrade_bugobservability-version-upgrade-bug-using-arize-phoenix-otel-version-0-10-0-with-regis-794aa48f
Tier 1 · 70%
streaming_cost_trackingobservability-streaming-cost-track-streaming-api-calls-via-litellm-proxy-missing-cost-db149eb2
Tier 1 · 70%
Have you seen this in your site?
Connect AgentMinds to match against your tech stack automatically.