Fix net_alerter: don't treat 403 as token expiry — room permission errors were silently dropping all alerts

This commit is contained in:
n0mad1k
2026-04-06 08:27:42 -04:00
parent 75703d7ef6
commit 532f5f4a33
+5 -1
View File
@@ -100,7 +100,7 @@ def send_matrix_alert(msg: str) -> None:
print(f"[warn] No MATRIX_ACCESS_TOKEN set, skipping alert", file=sys.stderr) print(f"[warn] No MATRIX_ACCESS_TOKEN set, skipping alert", file=sys.stderr)
return return
code = _do_send(MATRIX_ACCESS_TOKEN, msg) code = _do_send(MATRIX_ACCESS_TOKEN, msg)
if code in (401, 403): if code == 401:
print("[info] Token expired, refreshing...", file=sys.stderr) print("[info] Token expired, refreshing...", file=sys.stderr)
new_token = refresh_token() new_token = refresh_token()
if new_token: if new_token:
@@ -108,6 +108,10 @@ def send_matrix_alert(msg: str) -> None:
_do_send(MATRIX_ACCESS_TOKEN, msg) _do_send(MATRIX_ACCESS_TOKEN, msg)
else: else:
print("[error] Could not refresh token, alert dropped", file=sys.stderr) print("[error] Could not refresh token, alert dropped", file=sys.stderr)
elif code == 403:
print("[error] Room permission denied (403) — check bot membership in room", file=sys.stderr)
elif code not in (200, 0):
print(f"[error] Matrix send failed with HTTP {code}", file=sys.stderr)
def get_local_subnets() -> list[str]: def get_local_subnets() -> list[str]: