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."
|
||||
|
||||
|
||||
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):
|
||||
run_id = get_active_run_id(user_id)
|
||||
status = get_strategy_status(user_id)
|
||||
@ -930,15 +957,16 @@ def get_strategy_summary(user_id: str):
|
||||
|
||||
if issue_row:
|
||||
event, message, data, meta, ts = issue_row
|
||||
summary.update(
|
||||
{
|
||||
"tone": "error" if event in {"ENGINE_ERROR", "ORDER_REJECTED"} else "warning",
|
||||
"message": _issue_message(event, message, data, meta),
|
||||
"event": event,
|
||||
"ts": _format_local_ts(ts),
|
||||
}
|
||||
)
|
||||
return summary
|
||||
if not _issue_is_stale_for_current_state(user_id, status, event, data, meta):
|
||||
summary.update(
|
||||
{
|
||||
"tone": "error" if event in {"ENGINE_ERROR", "ORDER_REJECTED"} else "warning",
|
||||
"message": _issue_message(event, message, data, meta),
|
||||
"event": event,
|
||||
"ts": _format_local_ts(ts),
|
||||
}
|
||||
)
|
||||
return summary
|
||||
|
||||
status_key = (status.get("status") or "IDLE").upper()
|
||||
if status_key == "WAITING" and next_eligible_ts:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user