Почему возникает ошибка 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 таб вправо.