Files
notify-bridge/packages
alexei.dolgolyov 2eccbc7279
Release / release (push) Successful in 58s
fix(webhook): avoid MissingGreenlet on expired ORM instance after commit
Telegram webhook handler crashed with sqlalchemy.exc.MissingGreenlet
when processing any incoming message after committing the chat row:

    TelegramChat.bot_id == bot.id
                           ^^^^^^
    MissingGreenlet: greenlet_spawn has not been called

AsyncSession expires all instances on commit. Accessing bot.id/bot.token
after that triggers implicit lazy-load I/O from a sync attribute getter,
which can't enter the greenlet dispatcher → crash.

Fix: snapshot bot.id + bot.token to locals before commit, refresh the
ORM instance after a successful commit so handle_command() can still
use it, and route the remaining call sites through the snapshot
variables.
2026-04-21 20:54:00 +03:00
..