Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions src/agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -763,23 +763,23 @@ async def async_langflow_chat_stream(
"error": error_occurred, # Mark if this was an error response
}
# Store usage data if available (from response.completed event)
if usage_data:
assistant_message["response_data"] = {"usage": usage_data}
conversation_state["messages"].append(assistant_message)
if usage_data:
assistant_message["response_data"] = {"usage": usage_data}
conversation_state["messages"].append(assistant_message)

# Store the conversation thread with its response_id
if response_id:
conversation_state["last_activity"] = datetime.now()
await store_conversation_thread(user_id, response_id, conversation_state)

# Claim session ownership for this user
try:
from services.session_ownership_service import session_ownership_service
try:
from services.session_ownership_service import session_ownership_service

session_ownership_service.claim_session(user_id, response_id)
logger.debug(f"Claimed session {response_id} for user {user_id}")
except Exception as e:
logger.warning(f"Failed to claim session ownership: {e}")
session_ownership_service.claim_session(user_id, response_id)
logger.debug(f"Claimed session {response_id} for user {user_id}")
except Exception as e:
logger.warning(f"Failed to claim session ownership: {e}")

logger.debug(
f"Stored langflow conversation thread for user {user_id} with response_id: {response_id}"
Expand Down
13 changes: 13 additions & 0 deletions src/api/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -1086,6 +1086,19 @@ async def onboarding(
status_code=503,
)

# Ensure all flows exist in Langflow before configuring them.
# On fresh deployments, the background startup_tasks may not have
# created the flows yet (race condition). This is idempotent —
# if startup_tasks already ran, it's a fast no-op.
try:
await flows_service.ensure_flows_exist()
except Exception as e:
logger.error("Failed to ensure Langflow flows exist during onboarding", error=str(e))
return JSONResponse(
{"error": "Failed to initialize Langflow flows. Please try again."},
status_code=503,
)

# Set Langflow global variables and model values based on provider configuration
try:
# Check if any provider-related fields were provided
Expand Down