diff --git a/discord/ext/commands/core.py b/discord/ext/commands/core.py index 88e65507d..2d58f95ae 100644 --- a/discord/ext/commands/core.py +++ b/discord/ext/commands/core.py @@ -564,7 +564,14 @@ class Command(_BaseCommand, Generic[CogT, P, T]): if consume_rest_is_special: argument = view.read_rest().strip() else: - argument = view.get_quoted_word() + try: + argument = view.get_quoted_word() + except ArgumentParsingError as exc: + if self._is_typing_optional(param.annotation): + view.index = previous + return None + else: + raise exc view.previous = previous # type-checker fails to narrow argument