You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: tell a stopped run apart from one the service killed
asyncio delivers a user pressing stop and a server-imposed execution ceiling
as the same CancelledError, and the flow span reported both as cancelled with
OTel status UNSET. That kept every timeout out of error-rate alerting, while
the client was served a terminal error and the job row was written FAILED.
The span was the only place claiming nothing had gone wrong.
The two are now separate outcomes. A user stop stays cancelled with status
UNSET, because a withdrawn request is not a service fault. Anything else that
cancels a run reports aborted with span status ERROR, which is what the rest
of the system already says about it.
The discriminator already existed: the producers stamp a marker on the
exception args, and the job service reads it to choose CANCELLED over FAILED.
It was a bare string repeated at five sites, so the span could not have
trusted it. It is one constant now, and it lives in lfx.constants rather than
next to the graph exceptions: importing lfx.graph.exceptions from a langflow
service module runs lfx/graph/__init__, which imports Graph, and that made
langflow.main fail to import at all. lfx.constants imports nothing but
pathlib.
0 commit comments