# Buggy code
def __init__(
    self,
    bot,
    loop=None,
    storage: typing.Optional[BaseStorage] = None,
    run_tasks_by_default: bool = False,
    throttling_rate_limit=DEFAULT_RATE_LIMIT,
    no_throttle_error=False,
    filters_factory=None,
):
    if not isinstance(bot, Bot):
        raise TypeError(
            f"Argument 'bot' must be an instance of Bot, not '{type(bot).__name__}'"
        )

    if loop is None:
        loop = bot.loop
    if storage is None:
        storage = DisabledStorage()
    if filters_factory is None:
        filters_factory = FiltersFactory(self)

    self.bot: Bot = bot
    self.loop = loop
    self.storage = storage
    self.run_tasks_by_default = run_tasks_by_default

    self.throttling_rate_limit = throttling_rate_limit
    self.no_throttle_error = no_throttle_error

    self.filters_factory: FiltersFactory = filters_factory
    self.updates_handler = Handler(self, middleware_key="update")
    self.message_handlers = Handler(self, middleware_key="message")
    self.edited_message_handlers = Handler(self, middleware_key="edited_message")
    self.channel_post_handlers = Handler(self, middleware_key="channel_post")
    self.edited_channel_post_handlers = Handler(
        self, middleware_key="edited_channel_post"
    )
    self.inline_query_handlers = Handler(self, middleware_key="inline_query")
    self.chosen_inline_result_handlers = Handler(
        self, middleware_key="chosen_inline_result"
    )
    self.callback_query_handlers = Handler(self, middleware_key="callback_query")
    self.shipping_query_handlers = Handler(self, middleware_key="shipping_query")
    self.pre_checkout_query_handlers = Handler(
        self, middleware_key="pre_checkout_query"
    )
    self.poll_handlers = Handler(self, middleware_key="poll")
    self.poll_answer_handlers = Handler(self, middleware_key="poll_answer")
    self.errors_handlers = Handler(self, once=False, middleware_key="error")

    self.middleware = MiddlewareManager(self)

    self.updates_handler.register(self.process_update)

    self._polling = False
    self._closed = True
    self._close_waiter = loop.create_future()

    self._setup_filters()


# Traceback (RuntimeError)
INFO:     91.108.6.40:0 - "POST /updates/ HTTP/1.1" 500 Internal Server Error
ERROR:    Exception in ASGI application
Traceback (most recent call last):
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/uvicorn/protocols/http/httptools_impl.py", line 385, in run_asgi
result = await app(self.scope, self.receive, self.send)
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
return await self.app(scope, receive, send)
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/starlette/applications.py", line 102, in __call__
await self.middleware_stack(scope, receive, send)
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/starlette/middleware/errors.py", line 181, in __call__
raise exc from None
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/starlette/middleware/errors.py", line 159, in __call__
await self.app(scope, receive, _send)
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/starlette/exceptions.py", line 82, in __call__
raise exc from None
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/starlette/exceptions.py", line 71, in __call__
await self.app(scope, receive, sender)
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/starlette/routing.py", line 550, in __call__
await route.handle(scope, receive, send)
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/starlette/routing.py", line 227, in handle
await self.app(scope, receive, send)
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/starlette/endpoints.py", line 30, in dispatch
response = await handler(request)
File "/home/vitaliy/coding/telegram-evernote-bot/src/views.py", line 57, in post
await process_update(update_data)
File "/home/vitaliy/coding/telegram-evernote-bot/src/services/updates.py", line 13, in process_update
return await dispatcher.process_update(update)
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/aiogram/dispatcher/dispatcher.py", line 214, in process_update
return await self.message_handlers.notify(update.message)
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/aiogram/dispatcher/handler.py", line 117, in notify
response = await handler_obj.handler(*args, **partial_data)
File "/home/vitaliy/coding/telegram-evernote-bot/src/bot.py", line 21, in send_help_message
await message.reply(
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/aiogram/types/message.py", line 995, in reply
return await self.bot.send_message(
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/aiogram/bot/bot.py", line 219, in send_message
result = await self.request(api.Methods.SEND_MESSAGE, payload)
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/aiogram/bot/base.py", line 201, in request
return await api.make_request(self.session, self.__token, method, data, files,
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/aiogram/bot/api.py", line 103, in make_request
async with session.post(url, data=req, **kwargs) as response:
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/aiohttp/client.py", line 1012, in __aenter__
self._resp = await self._coro
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/aiohttp/client.py", line 426, in _request
with timer:
File "/home/vitaliy/.cache/pypoetry/virtualenvs/telegram-evernote-bot-IC7bT7Nj-py3.8/lib/python3.8/site-packages/aiohttp/helpers.py", line 579, in __enter__
raise RuntimeError('Timeout context manager should be used '
RuntimeError: Timeout context manager should be used inside a task

# Fixed code
def __init__(
    self,
    bot,
    loop=None,
    storage: typing.Optional[BaseStorage] = None,
    run_tasks_by_default: bool = False,
    throttling_rate_limit=DEFAULT_RATE_LIMIT,
    no_throttle_error=False,
    filters_factory=None,
):
    if not isinstance(bot, Bot):
        raise TypeError(
            f"Argument 'bot' must be an instance of Bot, not '{type(bot).__name__}'"
        )

    if storage is None:
        storage = DisabledStorage()
    if filters_factory is None:
        filters_factory = FiltersFactory(self)

    self.bot: Bot = bot
    if loop is not None:
        _ensure_loop(loop)
    self._main_loop = loop
    self.storage = storage
    self.run_tasks_by_default = run_tasks_by_default

    self.throttling_rate_limit = throttling_rate_limit
    self.no_throttle_error = no_throttle_error

    self.filters_factory: FiltersFactory = filters_factory
    self.updates_handler = Handler(self, middleware_key="update")
    self.message_handlers = Handler(self, middleware_key="message")
    self.edited_message_handlers = Handler(self, middleware_key="edited_message")
    self.channel_post_handlers = Handler(self, middleware_key="channel_post")
    self.edited_channel_post_handlers = Handler(
        self, middleware_key="edited_channel_post"
    )
    self.inline_query_handlers = Handler(self, middleware_key="inline_query")
    self.chosen_inline_result_handlers = Handler(
        self, middleware_key="chosen_inline_result"
    )
    self.callback_query_handlers = Handler(self, middleware_key="callback_query")
    self.shipping_query_handlers = Handler(self, middleware_key="shipping_query")
    self.pre_checkout_query_handlers = Handler(
        self, middleware_key="pre_checkout_query"
    )
    self.poll_handlers = Handler(self, middleware_key="poll")
    self.poll_answer_handlers = Handler(self, middleware_key="poll_answer")
    self.errors_handlers = Handler(self, once=False, middleware_key="error")

    self.middleware = MiddlewareManager(self)

    self.updates_handler.register(self.process_update)

    self._polling = False
    self._closed = True
    self._dispatcher_close_waiter = None

    self._setup_filters()