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
Context
I have an “Uber Agent” that calls two subflows: OfferAgent and BookingAgent.
Backend uses Langflow with Redis cache enabled.
We pass a session_id, but we’re seeing older-session artifacts show up in current runs. This occurs randomly. Symptoms
Offer tools for the current session return a list like: link https://example.com/#/action-queue/offer_id_A
link https://example.com/#/action-queue/offer_id_B
link https://example.com/#/action-queue/offer_id_C
OfferAgent then produces a single prioritized item. It should have returned all the three offers prioritized. link https://example.com/#/action-queue/offer_id_OLD_1
priority HIGH, group_name funtrip, total_price $7,486.00 USD, reasoning “Offer due in 2 days”
This link is valid but originated from an older session (not in the current offers list).
The Uber Agent’s final formatted response sometimes changes the link again to a different older-session link: https://example.com/#/action-queue/offer_id_OLD_2
BookingAgent data in the same run looks consistent (bookings stay aligned with the current session).
This behavior is intermittent; some runs are correct, others pick up an old-session link. Expected
OfferAgent and the final Uber Agent output should only contain links present in the current session’s offers list. Actual
OfferAgent and/or the Uber Agent occasionally return a link from an older session that is not included in the current offers_json. Environment / Config
Langflow version: 1.4.2
Deployment: k8s, we have 6 replicas.
Python: 3.12,
Redis: Azure Redis
LANGFLOW_CACHE_TYPE: redis
LANGFLOW_REDIS_HOST: url
LANGFLOW_REDIS_PORT: port
LANGFLOW_REDIS_CACHE_EXPIRE: 86400
Do you pass a stable session_id (UUID) from client on every call? Yes
Any streaming used? Yes. We are not using websockets but the AI UI polls for responses. Evidence (sanitized)
Current offers_json items (subset): …offer_id_A, …offer_id_B, …offer_id_C
OfferAgent output (older session): …offer_id_OLD_1
Final Uber Agent output (sometimes a different older session): …offer_id_OLD_2 What I already checked
Session propagation: Confirmed we pass session_id
We do not pass a session id to subflows. We use a custom RunFlow component to run subflows. But we pass a valid UUID to the Uber agent. The session ID is passed from the UI as part of API call. For every new chat a session ID is generated.
ID consistency: Frontend vs backend (session_id vs conversation_id) mapped: [did not check]. Questions
Are there known cases where session/memory can return data from a different session?
Is there a recommended Redis key prefix/namespace to avoid accidental collisions?
For multi-subflow runs, what’s the best practice to ensure each subflow and the aggregator (Uber Agent) read/write strictly within the same session?
What is the best practice for running a multi-node Langflow deployment? The biggest concern with this is that in a multi-tenant environment, one tenant may see data from other tenant.
Any guidance on enabling debug logs to trace exact Redis keys and resolved session IDs per request?
Any pointers or known fixes would be appreciated. I can share scrubbed logs or minimal flow JSON if helpful.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Context
I have an “Uber Agent” that calls two subflows: OfferAgent and BookingAgent.
Backend uses Langflow with Redis cache enabled.
We pass a session_id, but we’re seeing older-session artifacts show up in current runs. This occurs randomly.
Symptoms
Offer tools for the current session return a list like:
link https://example.com/#/action-queue/offer_id_A
link https://example.com/#/action-queue/offer_id_B
link https://example.com/#/action-queue/offer_id_C
OfferAgent then produces a single prioritized item. It should have returned all the three offers prioritized.
link https://example.com/#/action-queue/offer_id_OLD_1
priority HIGH, group_name funtrip, total_price $7,486.00 USD, reasoning “Offer due in 2 days”
This link is valid but originated from an older session (not in the current offers list).
The Uber Agent’s final formatted response sometimes changes the link again to a different older-session link:
https://example.com/#/action-queue/offer_id_OLD_2
BookingAgent data in the same run looks consistent (bookings stay aligned with the current session).
This behavior is intermittent; some runs are correct, others pick up an old-session link.
Expected
OfferAgent and the final Uber Agent output should only contain links present in the current session’s offers list.
Actual
OfferAgent and/or the Uber Agent occasionally return a link from an older session that is not included in the current offers_json.
Environment / Config
Langflow version: 1.4.2
Deployment: k8s, we have 6 replicas.
Python: 3.12,
Redis: Azure Redis
LANGFLOW_CACHE_TYPE: redis
LANGFLOW_REDIS_HOST: url
LANGFLOW_REDIS_PORT: port
LANGFLOW_REDIS_CACHE_EXPIRE: 86400
Do you pass a stable session_id (UUID) from client on every call? Yes
Any streaming used? Yes. We are not using websockets but the AI UI polls for responses.
Evidence (sanitized)
Current offers_json items (subset): …offer_id_A, …offer_id_B, …offer_id_C
OfferAgent output (older session): …offer_id_OLD_1
Final Uber Agent output (sometimes a different older session): …offer_id_OLD_2
What I already checked
Session propagation: Confirmed we pass session_id
We do not pass a session id to subflows. We use a custom RunFlow component to run subflows. But we pass a valid UUID to the Uber agent. The session ID is passed from the UI as part of API call. For every new chat a session ID is generated.
ID consistency: Frontend vs backend (session_id vs conversation_id) mapped: [did not check].
Questions
Are there known cases where session/memory can return data from a different session?
Is there a recommended Redis key prefix/namespace to avoid accidental collisions?
For multi-subflow runs, what’s the best practice to ensure each subflow and the aggregator (Uber Agent) read/write strictly within the same session?
What is the best practice for running a multi-node Langflow deployment? The biggest concern with this is that in a multi-tenant environment, one tenant may see data from other tenant.
Any guidance on enabling debug logs to trace exact Redis keys and resolved session IDs per request?
Any pointers or known fixes would be appreciated. I can share scrubbed logs or minimal flow JSON if helpful.
Beta Was this translation helpful? Give feedback.
All reactions