Discord.py: How to fix "event loop is closed"

Viewed 14818

I am new to programming. I am trying to have my discord bot open up command prompt to confirm it can run, but I am getting this error:

  File "C:\Users\---\AppData\Local\Programs\Python\Python38-32\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Users\---\AppData\Local\Programs\Python\Python38-32\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Users\---\AppData\Local\Programs\Python\Python38-32\lib\asyncio\base_events.py", line 719, in call_soon
    self._check_closed()
  File "C:\Users\---\AppData\Local\Programs\Python\Python38-32\lib\asyncio\base_events.py", line 508, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
[Finished in 0.871s]

Code:

import discord
from discord.ext import commands

client=commands.Bot(command_prefix = '.')

@client.event
async def on_ready():
    print('ok')

client.run(token)

What causes this error, and how can I fix this?

Edit: after some testing, I believe "client.run(token)" is what is causing "event loop is closed", not sure why.

5 Answers

I guess your bot has no function, so it just starts and then shuts down again, but I'm not sure. You would have to test this out by for example adding async def on_message(message).

Normally the Event loop is closed "Error" is caused by client.close() or client.logout()

try enabling intents on the developer portal it worked for me when i had the same problem

This is because you didn't set the "token" variable, in your last line you use it but it isn't defined.

Or maybe did you set it but didn't write it here?

This is caused by a wrong or invalid token. Try to reset your token in the developer portal and start the bot with the new one.

Related