From f92b5c5afc6369a884c43013f7a7863efec91bf8 Mon Sep 17 00:00:00 2001 From: Thigazhezhilan J Date: Sat, 28 Mar 2026 14:37:42 +0530 Subject: [PATCH] Fix resume lifecycle ordering --- backend/app/services/strategy_service.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/backend/app/services/strategy_service.py b/backend/app/services/strategy_service.py index 7224256..9ed86ce 100644 --- a/backend/app/services/strategy_service.py +++ b/backend/app/services/strategy_service.py @@ -627,6 +627,7 @@ def resume_strategy(user_id: str): "broker": broker_state.get("broker"), } + engine_config = None if not engine_external: try: engine_config = _build_engine_config(user_id, run_id, None) @@ -642,25 +643,34 @@ def resume_strategy(user_id: str): "run_id": run_id, "message": "Saved strategy configuration is incomplete.", } + + reactivate_strategy_config(user_id, run_id) + update_run_status(user_id, run_id, "RUNNING", meta={"reason": "user_resume"}) + _write_status(user_id, run_id, "RUNNING") + + if not engine_external: try: started = start_engine(engine_config) except Exception as exc: + deactivate_strategy_config(user_id, run_id) + _write_status(user_id, run_id, "STOPPED") + update_run_status(user_id, run_id, "STOPPED", meta={"reason": "resume_start_failed"}) return { "status": "resume_failed", "run_id": run_id, "message": f"Unable to resume the strategy engine: {exc}", } if not started: + deactivate_strategy_config(user_id, run_id) + _write_status(user_id, run_id, "STOPPED") + update_run_status(user_id, run_id, "STOPPED", meta={"reason": "resume_start_failed"}) return { "status": "resume_failed", "run_id": run_id, "message": "Strategy engine could not be started.", } - reactivate_strategy_config(user_id, run_id) resume_run(user_id, run_id) - _write_status(user_id, run_id, "RUNNING") - update_run_status(user_id, run_id, "RUNNING", meta={"reason": "user_resume"}) try: user = get_user_by_id(user_id)