File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1781,6 +1781,20 @@ def _supervisor_info_ready(
17811781 )
17821782
17831783
1784+ def _reconnect_supervisor_during_wait (ws : HAWebSocket ) -> BaseException | None :
1785+ """Best-effort reconnect while Supervisor/Core restarts."""
1786+ try :
1787+ ws .reconnect ()
1788+ except _SUPERVISOR_WAIT_TRANSIENT_ERRORS as reconnect_err :
1789+ if not _is_transient_supervisor_readiness_error (reconnect_err ):
1790+ raise
1791+ # Handler-start timeouts and transport failures are expected while
1792+ # Supervisor/Core restarts; keep them visible in CI logs.
1793+ LOG .warning ("reconnect during update wait failed: %r" , reconnect_err )
1794+ return reconnect_err
1795+ return None
1796+
1797+
17841798def _wait_supervisor_ready (
17851799 ws : HAWebSocket ,
17861800 * ,
@@ -1820,14 +1834,8 @@ def _wait_supervisor_ready(
18201834 # then best-effort reconnect and keep polling.
18211835 last_error = e
18221836 LOG .debug ("Transient error polling /supervisor/info: %r" , e )
1823- try :
1824- ws .reconnect ()
1825- except _SUPERVISOR_WAIT_TRANSIENT_ERRORS as reconnect_err :
1826- if not _is_transient_supervisor_readiness_error (reconnect_err ):
1827- raise
1828- # Handler-start timeouts and transport failures are expected
1829- # while Supervisor/Core restarts; keep them visible in CI logs.
1830- LOG .warning ("reconnect during update wait failed: %r" , reconnect_err )
1837+ reconnect_err = _reconnect_supervisor_during_wait (ws )
1838+ if reconnect_err is not None :
18311839 last_error = reconnect_err
18321840 continue
18331841 version = info .get ("version" )
You can’t perform that action at this time.
0 commit comments