Harden strategy resume failure handling
This commit is contained in:
parent
382b5aa5f6
commit
bc79894cd1
@ -328,16 +328,32 @@ def _validate_live_broker_session(user_id: str):
|
||||
if not broker_state.get("connected") or broker_name != "ZERODHA":
|
||||
return False, broker_state, "broker_not_connected"
|
||||
|
||||
try:
|
||||
session = get_session(user_id)
|
||||
except Exception as exc:
|
||||
print(f"[STRATEGY] failed to load Zerodha session for {user_id}: {exc}", flush=True)
|
||||
set_broker_auth_state(user_id, "EXPIRED")
|
||||
return False, broker_state, "broker_auth_required"
|
||||
|
||||
if not session:
|
||||
set_broker_auth_state(user_id, "EXPIRED")
|
||||
return False, broker_state, "broker_auth_required"
|
||||
|
||||
api_key = str(session.get("api_key") or "").strip()
|
||||
access_token = str(session.get("access_token") or "").strip()
|
||||
if not api_key or not access_token:
|
||||
set_broker_auth_state(user_id, "EXPIRED")
|
||||
return False, broker_state, "broker_auth_required"
|
||||
|
||||
try:
|
||||
fetch_funds(session["api_key"], session["access_token"])
|
||||
fetch_funds(api_key, access_token)
|
||||
except KiteTokenError:
|
||||
set_broker_auth_state(user_id, "EXPIRED")
|
||||
return False, broker_state, "broker_auth_required"
|
||||
except Exception as exc:
|
||||
print(f"[STRATEGY] failed to validate Zerodha session for {user_id}: {exc}", flush=True)
|
||||
set_broker_auth_state(user_id, "EXPIRED")
|
||||
return False, broker_state, "broker_auth_required"
|
||||
|
||||
set_broker_auth_state(user_id, "VALID")
|
||||
return True, broker_state, "ok"
|
||||
@ -612,14 +628,28 @@ def resume_strategy(user_id: str):
|
||||
}
|
||||
|
||||
if not engine_external:
|
||||
try:
|
||||
engine_config = _build_engine_config(user_id, run_id, None)
|
||||
except Exception as exc:
|
||||
return {
|
||||
"status": "resume_failed",
|
||||
"run_id": run_id,
|
||||
"message": f"Unable to load the saved strategy state: {exc}",
|
||||
}
|
||||
if not engine_config:
|
||||
return {
|
||||
"status": "resume_failed",
|
||||
"run_id": run_id,
|
||||
"message": "Saved strategy configuration is incomplete.",
|
||||
}
|
||||
try:
|
||||
started = start_engine(engine_config)
|
||||
except Exception as exc:
|
||||
return {
|
||||
"status": "resume_failed",
|
||||
"run_id": run_id,
|
||||
"message": f"Unable to resume the strategy engine: {exc}",
|
||||
}
|
||||
if not started:
|
||||
return {
|
||||
"status": "resume_failed",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user