Check set_presence return value for errors

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
This commit is contained in:
Claude
2026-02-28 09:14:06 +00:00
parent 8d7a66c431
commit d22fb6ae10

View File

@@ -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: