Open naumoff1337 opened 7 months ago
When throwing an error from the scene using throw new Error(), it fails to exit the scene in bot.catch()
throw new Error()
err.ctx.session.scenes equals undefined
err.ctx.session.scenes
import { Bot, Context, session, SessionFlavor } from 'grammy' import { ScenesSessionData, ScenesFlavor } from 'grammy-scenes' import { TypeormAdapter } from '@grammyjs/storage-typeorm' import { AppDataSource } from './db' import { SessionEntity } from './session.entity' import { scenes } from './scenes' type MyContext = Context & SessionFlavor<ScenesSessionData> & ScenesFlavor async function bootstrap() { const bot = new Bot<MyContext>(process.env.BOT_TOKEN) bot.use( session({ initial: () => ({}), storage: new TypeormAdapter({ repository: AppDataSource.getRepository(SessionEntity), }), }), ) bot.use(scenes.manager()) bot.command('start', async (ctx) => { await ctx.scenes.enter('main') }) bot.use(scenes) bot.catch(async (err) => { const ctx = err.ctx; await ctx.scenes.abort() // scenes exit doesn't work }) bot.start() } bootstrap()
When throwing an error from the scene using
throw new Error()
, it fails to exit the scene in bot.catch()err.ctx.session.scenes
equals undefined