Недавно задавал такой же вопрос, но так и не получил ответ, почему-то мне кажется, что это из-за формулировки.
Я разрабатываю бота на aiogram. Очевидно, что для создания базы данных лучше подойдет ассихронная СУБД.Поэтому я выбрал оболочку для postgresql - asyncpg.
Вот код для бд, в котором я написал функцию для добавления ton-кошельков пользователей:
import asyncpg
user = '',
password = '',
database = '',
host = 'localhost'
async def add_wallets(wallet):
    conn = await asyncpg.connect(user=user, password=password, database=database, host=host)
    await conn.execute("""INSERT INTO users(wallet) VALUES($1,)""", wallet)
    await conn.close()
Эту функцию я импортировал в свой основной код. Вот код обработчика, который принимает данные от пользователя:
@dp.message_handler(state=AddTon.wallet)
async def add_ton(message: types.Message, state=FSMContext):
    wallet = str('wallet')
    await new_ton.add_wallets(wallet)
    await state.finish()
    await message.answer('Ваш ton кошелёк был добавлен')
Как только пользователь вводит данные, появляется ошибка:
Task exception was never retrieved
future:  exception=AttributeError("'Protocol' object has no attribute '_on_error'")>
Traceback (most recent call last):
  File "asyncpg\protocol\protocol.pyx", line 951, in asyncpg.protocol.protocol.BaseProtocol.connection_made
  File "asyncpg\protocol\coreproto.pyx", line 859, in asyncpg.protocol.protocol.CoreProtocol._connect
TypeError: Expected unicode, got tuple
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\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 "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 235, in process_updates
    return await asyncio.gather(*tasks)
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\aiogram\dispatcher\handler.py", line 117, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 256, in process_update
    return await self.message_handlers.notify(update.message)
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\aiogram\dispatcher\handler.py", line 117, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "C:\Users\User\PycharmProjects\bot_ton\handlers\client.py", line 37, in add_ton
    await new_ton.add_wallets(wallet)
  File "C:\Users\User\PycharmProjects\bot_ton\data_base\new_ton.py", line 10, in add_wallets
    pool = await asyncpg.create_pool(user=user, password=password, database=database, host=host)
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\asyncpg\pool.py", line 409, in _async__init__
    await self._initialize()
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\asyncpg\pool.py", line 437, in _initialize
    await first_ch.connect()
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\asyncpg\pool.py", line 129, in connect
    self._con = await self._pool._get_new_connection()
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\asyncpg\pool.py", line 507, in _get_new_connection
    con = await connection.connect(
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\asyncpg\connection.py", line 2092, in connect
    return await connect_utils._connect(
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\asyncpg\connect_utils.py", line 881, in _connect
    return await _connect_addr(
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\asyncpg\connect_utils.py", line 773, in _connect_addr
    return await __connect_addr(params, timeout, True, *args)
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\asyncpg\connect_utils.py", line 825, in __connect_addr
    tr, pr = await compat.wait_for(connector, timeout=timeout)
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\asyncpg\compat.py", line 56, in wait_for
    return await asyncio.wait_for(fut, timeout)
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\asyncio\tasks.py", line 445, in wait_for
    return fut.result()
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\asyncpg\connect_utils.py", line 710, in _create_ssl_connection
    pg_proto.connection_made(new_tr)
  File "asyncpg\protocol\protocol.pyx", line 956, in asyncpg.protocol.protocol.BaseProtocol.connection_made
AttributeError: 'Protocol' object has no attribute '_on_error'
Очень надеюсь на вашу помощь, так как уже достаточно намучался с этой проблемой. За раннее спасибо. Если вам ещё потребуется код, то я его скину.