Ignore stale broker auth warnings after reconnect
This commit is contained in:
parent
001731a3a9
commit
c8edbf1a98
@ -887,6 +887,33 @@ def _issue_message(event: str, message: str | None, data: dict | None, meta: dic
|
|||||||
return message or _humanize_reason(reason) or "Strategy update available."
|
return message or _humanize_reason(reason) or "Strategy update available."
|
||||||
|
|
||||||
|
|
||||||
|
def _issue_is_stale_for_current_state(
|
||||||
|
user_id: str,
|
||||||
|
status: dict,
|
||||||
|
event: str,
|
||||||
|
data: dict | None,
|
||||||
|
meta: dict | None,
|
||||||
|
):
|
||||||
|
cfg = status.get("config") if isinstance(status.get("config"), dict) else {}
|
||||||
|
mode = str(cfg.get("mode") or "").strip().upper()
|
||||||
|
if mode != "LIVE":
|
||||||
|
return False
|
||||||
|
|
||||||
|
payload = data if isinstance(data, dict) else {}
|
||||||
|
extra = meta if isinstance(meta, dict) else {}
|
||||||
|
reason = payload.get("reason") or extra.get("reason")
|
||||||
|
reason_key = str(reason or "").strip().lower()
|
||||||
|
auth_related_issue = event == "BROKER_AUTH_EXPIRED" or (
|
||||||
|
event == "SIP_NO_FILL" and reason_key == "broker_auth_expired"
|
||||||
|
) or (event == "EXECUTION_BLOCKED" and reason_key in {"broker_auth_expired", "auth_expired"})
|
||||||
|
if not auth_related_issue:
|
||||||
|
return False
|
||||||
|
|
||||||
|
broker_state = get_user_broker(user_id) or {}
|
||||||
|
auth_state = str(broker_state.get("auth_state") or "").strip().upper()
|
||||||
|
return auth_state == "VALID"
|
||||||
|
|
||||||
|
|
||||||
def get_strategy_summary(user_id: str):
|
def get_strategy_summary(user_id: str):
|
||||||
run_id = get_active_run_id(user_id)
|
run_id = get_active_run_id(user_id)
|
||||||
status = get_strategy_status(user_id)
|
status = get_strategy_status(user_id)
|
||||||
@ -930,6 +957,7 @@ def get_strategy_summary(user_id: str):
|
|||||||
|
|
||||||
if issue_row:
|
if issue_row:
|
||||||
event, message, data, meta, ts = issue_row
|
event, message, data, meta, ts = issue_row
|
||||||
|
if not _issue_is_stale_for_current_state(user_id, status, event, data, meta):
|
||||||
summary.update(
|
summary.update(
|
||||||
{
|
{
|
||||||
"tone": "error" if event in {"ENGINE_ERROR", "ORDER_REJECTED"} else "warning",
|
"tone": "error" if event in {"ENGINE_ERROR", "ORDER_REJECTED"} else "warning",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user