From d22fb6ae1094c7f67ae057af6aee4a526bafffd1 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 28 Feb 2026 09:14:06 +0000 Subject: [PATCH] Check set_presence return value for errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit matrix-nio's set_presence() doesn't raise on failure — it returns a PresenceSetError object. The code was ignoring the return value, so the bot would silently fail to go online even with valid credentials. https://claude.ai/code/session_019ANRdyL2jfi7ysWhqN4PfD --- app/matrix.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/matrix.py b/app/matrix.py index 46c1342..cd930a3 100644 --- a/app/matrix.py +++ b/app/matrix.py @@ -1,7 +1,7 @@ import asyncio import logging -from nio import AsyncClient, RoomSendResponse +from nio import AsyncClient, PresenceSetError, RoomSendResponse from app.config import config @@ -48,7 +48,9 @@ async def close_client() -> None: async def _set_presence(state: str) -> None: client = await get_client() - await client.set_presence(state) + resp = await client.set_presence(state) + if isinstance(resp, PresenceSetError): + raise RuntimeError(f"Presence update to '{state}' failed: {resp.message}") async def _presence_loop() -> None: