Ошибка KeyError при state.finish() бот aiogram python

Машина состояний работает, но выдает ошибку KeyError при завершении состояния state.finish(), даже при проверке на примере из исходной документации aiogram. Лезть в исходник библиотеки и менять код метода _cleanup не выход. Может документация не полная, что он не добавляет ключи chat.id и user.id, и есть способ нормально решить эту проблему? Спасибо за ответ!

Ссылка на код из документации(строка 125): https://docs.aiogram.dev/en/latest/examples/finite_state_machine_example.html

Текст ошибки:

future: <Task finished coro=<Dispatcher._process_polling_updates() done, defined at C:\Users\PyHS\Desktop\te\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py:409> exception=KeyError(1820871918)>
Traceback (most recent call last):
  File "C:\Users\PyHS\Desktop\te\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 417, in _process_polling_updates
    for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)):
  File "C:\Users\PyHS\Desktop\te\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 238, in process_updates
    return await asyncio.gather(*tasks)
  File "C:\Users\PyHS\Desktop\te\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 116, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "C:\Users\PyHS\Desktop\te\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 259, in process_update
    return await self.message_handlers.notify(update.message)
  File "C:\Users\PyHS\Desktop\te\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 116, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "testing.py", line 100, in process_gender
    await state.finish()
  File "C:\Users\PyHS\Desktop\te\venv\lib\site-packages\aiogram\dispatcher\storage.py", line 322, in finish
    await self.storage.finish(chat=self.chat, user=self.user)
  File "C:\Users\PyHS\Desktop\te\venv\lib\site-packages\aiogram\dispatcher\storage.py", line 202, in finish
    await self.reset_state(chat=chat, user=user, with_data=True)
  File "C:\Users\PyHS\Desktop\te\venv\lib\site-packages\aiogram\contrib\fsm_storage\memory.py", line 78, in reset_state
    self._cleanup(chat, user)
  File "C:\Users\PyHS\Desktop\te\venv\lib\site-packages\aiogram\contrib\fsm_storage\memory.py", line 108, in _cleanup
    if self.data[chat][user] == {'state': None, 'data': {}, 'bucket': {}}:
KeyError: 1820871918

Мой код:

from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.dispatcher import filters
from aiogram.utils import executor
import aiogram.utils.markdown as md
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters import Text
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.types import ParseMode
from aiogram.types import ReplyKeyboardRemove, ReplyKeyboardMarkup, KeyboardButton, \
                            InlineKeyboardMarkup, InlineKeyboardButton

import sqlite3 as sq
import string, json


ID = None
TOKEN = '1111'
bot = Bot(token=TOKEN)
dp = Dispatcher(bot, storage=MemoryStorage())

class Form(StatesGroup):
    photo = State()
    name = State()
    price = State()

@dp.message_handler(commands=['Загрузить'])
async def cmd_start(message: types.Message):
    if message.from_user.id == ID:
        await Form.photo.set()
        await message.reply("Загрузи фото")


@dp.message_handler(state='*', commands='cancel')
@dp.message_handler(Text(equals='отмена', ignore_case=True), state='*')
async def cancel_handler(message: types.Message, state: FSMContext):
    if message.from_user.id == ID:
        current_state = await state.get_state()
        if current_state is None:
            return

        await state.finish()
        await message.reply('ОК')


@dp.message_handler(content_types=['photo'], state=Form.photo)
async def load_photo(message: types.Message, state: FSMContext):
    if message.from_user.id == ID:
        async with state.proxy() as data:
            data['photo'] = message.photo[0].file_id

        await Form.next()
        await message.reply("Теперь введи название")


@dp.message_handler(state=Form.name)
async def load_name(message: types.Message, state: FSMContext):
    if message.from_user.id == ID:
        async with state.proxy() as data:
            data['name'] = message.text
        await Form.next()
        await message.reply("Введи описание")

@dp.message_handler(state=Form.price)
async def load_price(message: types.Message, state: FSMContext):
    if message.from_user.id == ID:
        async with state.proxy() as data:
            data['price'] = float(message.text)

        #отправка словаря в функцию записывающую в бд
        await sql_add_command(state)
        await state.finish()


executor.start_polling(dp, skip_updates=True)

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