Fix resume lifecycle ordering

This commit is contained in:
Thigazhezhilan J 2026-03-28 14:37:42 +05:30
parent 2a75cec620
commit f92b5c5afc

View File

@ -627,6 +627,7 @@ def resume_strategy(user_id: str):
"broker": broker_state.get("broker"), "broker": broker_state.get("broker"),
} }
engine_config = None
if not engine_external: if not engine_external:
try: try:
engine_config = _build_engine_config(user_id, run_id, None) engine_config = _build_engine_config(user_id, run_id, None)
@ -642,25 +643,34 @@ def resume_strategy(user_id: str):
"run_id": run_id, "run_id": run_id,
"message": "Saved strategy configuration is incomplete.", "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: try:
started = start_engine(engine_config) started = start_engine(engine_config)
except Exception as exc: 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 { return {
"status": "resume_failed", "status": "resume_failed",
"run_id": run_id, "run_id": run_id,
"message": f"Unable to resume the strategy engine: {exc}", "message": f"Unable to resume the strategy engine: {exc}",
} }
if not started: 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 { return {
"status": "resume_failed", "status": "resume_failed",
"run_id": run_id, "run_id": run_id,
"message": "Strategy engine could not be started.", "message": "Strategy engine could not be started.",
} }
reactivate_strategy_config(user_id, run_id)
resume_run(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: try:
user = get_user_by_id(user_id) user = get_user_by_id(user_id)