Почему возникает ошибка LookupError: Proxy is closed! в aiogram?

Пишу код

@dp.message_handler(state=FSMGotoeditcompdata.updtdatacomp)
async def get_new_comp_data(callback : types.CallbackQuery, state: FSMGotoeditcompdata):
async with state.proxy() as data:
    data['tg-id'] = callback.from_user.id
    data['userData'] = callback.text
    data['dataName'] = dataNameComp
if dataNameComp == 'line-business':
    lineBusinessInfo = dbcommon.getAllLineBusiness()
    listEmp = []
    for item in lineBusinessInfo:
        listEmp.append(item['id'])
    if int(callback.text) in listEmp:
        oneLineBusinessInfo = dbcommon.getLineBusinessById(int(callback.text))
        print(oneLineBusinessInfo)
        data['lineBusiness'] = oneLineBusinessInfo[0]['name']
        data['lineBusinessId'] = int(oneLineBusinessInfo[0]['id'])
        await dbcompanies.updtCompInfo2(state)
        await state.finish()
        await bot.send_message(callback.from_user.id, changeSuccessText2 + oneLineBusinessInfo['name'], reply_markup=editCompData_kb)
        await callback.answer()

И выдает ошибку

Task exception was never retrieved
future: <Task finished name='Task-32' coro=<Dispatcher._process_polling_updates() done, defined at D:\OpenServer\domains\jobbot.local\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py:407> exception=LookupError('Proxy is closed!')>
Traceback (most recent call last):
  File "D:\OpenServer\domains\jobbot.local\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 415, in _process_polling_updates
    for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)):
  File "D:\OpenServer\domains\jobbot.local\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 235, in process_updates
    return await asyncio.gather(*tasks)
  File "D:\OpenServer\domains\jobbot.local\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 116, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "D:\OpenServer\domains\jobbot.local\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 256, in process_update
    return await self.message_handlers.notify(update.message)
  File "D:\OpenServer\domains\jobbot.local\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 116, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "D:\OpenServer\domains\jobbot.local\handlers\companies.py", line 494, in get_new_comp_data
    data['lineBusiness'] = oneLineBusinessInfo[0]['name']
  File "D:\OpenServer\domains\jobbot.local\venv\lib\site-packages\aiogram\dispatcher\storage.py", line 442, in __setitem__
    self._check_closed()
  File "D:\OpenServer\domains\jobbot.local\venv\lib\site-packages\aiogram\dispatcher\storage.py", line 347, in _check_closed
    raise LookupError('Proxy is closed!')
LookupError: Proxy is closed!

Хотя выборка из базы проходит в этой строке oneLineBusinessInfo = dbcommon.getLineBusinessById(int(callback.text))
Там такое значение

[{'id': 8, 'name': 'Экономика и финансы'}]

В чем может быть дело?


Ответы (1 шт):

Автор решения: oleksandrigo

После data['dataName'] = dataNameComp у вас закрывается дата стейта.
Просто все что ниже сдвиньте на 1 таб вправо.

→ Ссылка