diff --git a/discord/ext/commands/bot.py b/discord/ext/commands/bot.py index 8c17c63b1..56c9c1539 100644 --- a/discord/ext/commands/bot.py +++ b/discord/ext/commands/bot.py @@ -632,7 +632,7 @@ class BotBase(GroupMixin): try: yield from ctx.command.invoke(ctx) except CommandError as e: - ctx.command.dispatch_error(e, ctx) + yield from ctx.command.dispatch_error(e, ctx) else: self.dispatch('command_completion', ctx) elif ctx.invoked_with: diff --git a/discord/ext/commands/core.py b/discord/ext/commands/core.py index 1a5d076db..c3e2b4133 100644 --- a/discord/ext/commands/core.py +++ b/discord/ext/commands/core.py @@ -145,18 +145,18 @@ class Command: self.parent = None self._buckets = CooldownMapping(kwargs.get('cooldown')) + @asyncio.coroutine def dispatch_error(self, error, ctx): try: coro = self.on_error except AttributeError: pass else: - loop = ctx.bot.loop injected = wrap_callback(coro) if self.instance is not None: - discord.compat.create_task(injected(self.instance, error, ctx), loop=loop) + yield from injected(self.instance, error, ctx) else: - discord.compat.create_task(injected(error, ctx), loop=loop) + yield from injected(error, ctx) finally: ctx.bot.dispatch('command_error', error, ctx)