Cog-Creators / Cog-Creators/Red-DiscordBot

Starting a bot with missing configuration may exit with code 1 instead of expected 78

Open
#6,572 2 comments 1 reaction 0 assignees View on GitHub
Blocked By: Dependency Status: Needs Triage Type: Bug
Dominant language
Python
Stars
5.7k
Forks
2.5k
Avg merge
6d 16h
Merged PRs (30d)
1

Description

### What Red version are you using?

3.5.20 and earlier

### What were you trying to do?

Attempting to launch the bot using the flag `--no-prompt`, with no token and/or prefix set up beforehand.

### What did you expect to happen?

Process to exit with code 78 for configuration error as expected in the following lines:
https://github.com/Cog-Creators/Red-DiscordBot/blob/V3/develop/redbot/core/_cli.py#L26
https://github.com/Cog-Creators/Red-DiscordBot/blob/V3/develop/redbot/core/data_manager.py#L116-L121

### What actually happened?

The process will exit with error code 1 due to the following traceback:
```py
Traceback (most recent call last):
File "/data/.venv/lib/python3.11/site-packages/redbot/__main__.py", line 521, in main
loop.run_forever()
File "uvloop/loop.pyx", line 1379, in uvloop.loop.Loop.run_forever
File "uvloop/loop.pyx", line 557, in uvloop.loop.Loop._run
File "/data/.venv/lib/python3.11/site-packages/redbot/__main__.py", line 470, in red_exception_handler
red_task.result()
File "/data/.venv/lib/python3.11/site-packages/redbot/__main__.py", line 363, in run_bot
sys.exit(ExitCodes.CONFIGURATION_ERROR)
SystemExit: 78

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in _run_code
File "/data/.venv/lib/python3.11/site-packages/redbot/__main__.py", line 563, in
main()
File "/data/.venv/lib/python3.11/site-packages/redbot/__main__.py", line 539, in main
loop.run_until_complete(shutdown_handler(red, None, exc.code))
File "uvloop/loop.pyx", line 1518, in uvloop.loop.Loop.run_until_complete
File "/data/.venv/lib/python3.11/site-packages/redbot/__main__.py", line 441, in shutdown_handler
await red.close()
File "/data/.venv/lib/python3.11/site-packages/redbot/core/bot.py", line 2278, in close
await super().close()
File "/data/.venv/lib/python3.11/site-packages/discord/ext/commands/bot.py", line 247, in close
await super().close() # type: ignore
^^^^^^^^^^^^^^^^^^^^^
File "/data/.venv/lib/python3.11/site-packages/discord/shard.py", line 554, in close
await self._closing_task
File "/data/.venv/lib/python3.11/site-packages/discord/shard.py", line 551, in _close
self.__queue.put_nowait(EventItem(EventType.clean_close, None, None))
^^^^^^^^^^^^
AttributeError: 'Red' object has no attribute '_AutoShardedClient__queue'. Did you mean: '_AutoShardedClient__shards'?
```

### How can we reproduce this error?

1. Install Red.
2. Configure an instance as you'd normally expect.
3. Attempt to launch the bot with `--no-prompt` without filling in token/prefix.
4. Check error code with `echo $?`.

### Anything else?

This process has been realized on Ubuntu.

Some conversation about the topic has emerged in #coding of the Discord server. See https://discord.com/channels/133049272517001216/160386989819035648/1369259135018733619

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.