# Buggy code
async def _spotify_playlist(
    self,
    ctx: commands.Context,
    stype: str,
    query: audio_dataclasses.Query,
    enqueue: bool = False,
):
    player = lavalink.get_player(ctx.guild.id)
    try:
        embed1 = discord.Embed(
            colour=await ctx.embed_colour(), title=_("Please wait, finding tracks...")
        )
        playlist_msg = await ctx.send(embed=embed1)
        notifier = Notifier(
            ctx,
            playlist_msg,
            {
                "spotify": _("Getting track {num}/{total}..."),
                "youtube": _("Matching track {num}/{total}..."),
                "lavalink": _("Loading track {num}/{total}..."),
                "lavalink_time": _("Approximate time remaining: {seconds}"),
            },
        )
        track_list = await self.music_cache.spotify_enqueue(
            ctx,
            stype,
            query.id,
            enqueue=enqueue,
            player=player,
            lock=self._play_lock,
            notifier=notifier,
        )
    except SpotifyFetchError as error:
        self._play_lock(ctx, False)
        return await self._embed_msg(ctx, _(error.message).format(prefix=ctx.prefix))
    except (RuntimeError, aiohttp.ServerDisconnectedError):
        self._play_lock(ctx, False)
        error_embed = discord.Embed(
            colour=await ctx.embed_colour(),
            title=_("The connection was reset while loading the playlist."),
        )
        await ctx.send(embed=error_embed)
        return None
    except Exception as e:
        self._play_lock(ctx, False)
        raise e
    self._play_lock(ctx, False)
    return track_list


# Traceback (RuntimeError)
Traceback (most recent call last):
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/discord/ext/commands/core.py", line 79, in wrapped
ret = await coro(*args, **kwargs)
File "/home/martinebots/martinebotscogs/cogs_modified/audio/audio.py", line 3183, in play
await self._enqueue_tracks(ctx, query)
File "/home/martinebots/martinebotscogs/cogs_modified/audio/audio.py", line 3885, in _enqueue_tracks
result, called_api = await self.music_cache.lavalink_query(ctx, player, query)
File "/home/martinebots/martinebotscogs/cogs_modified/audio/apis.py", line 911, in lavalink_query
results = await player.load_tracks(query)
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/lavalink/rest_api.py", line 300, in load_tracks
self.__check_node_ready()
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/lavalink/rest_api.py", line 268, in __check_node_ready
raise RuntimeError("Cannot execute REST request when node not ready.")
RuntimeError: Cannot execute REST request when node not ready.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/discord/ext/commands/bot.py", line 863, in invoke
await ctx.command.invoke(ctx)
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/discord/ext/commands/core.py", line 728, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/discord/ext/commands/core.py", line 88, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: RuntimeError: Cannot execute REST request when node not ready.```

# Fixed code
async def _spotify_playlist(
    self,
    ctx: commands.Context,
    stype: str,
    query: audio_dataclasses.Query,
    enqueue: bool = False,
):
    player = lavalink.get_player(ctx.guild.id)
    try:
        embed1 = discord.Embed(title=_("Please wait, finding tracks..."))
        playlist_msg = await self._embed_msg(ctx, embed=embed1)
        notifier = Notifier(
            ctx,
            playlist_msg,
            {
                "spotify": _("Getting track {num}/{total}..."),
                "youtube": _("Matching track {num}/{total}..."),
                "lavalink": _("Loading track {num}/{total}..."),
                "lavalink_time": _("Approximate time remaining: {seconds}"),
            },
        )
        track_list = await self.music_cache.spotify_enqueue(
            ctx,
            stype,
            query.id,
            enqueue=enqueue,
            player=player,
            lock=self._play_lock,
            notifier=notifier,
        )
    except SpotifyFetchError as error:
        self._play_lock(ctx, False)
        return await self._embed_msg(
            ctx,
            title=_("Invalid Environment"),
            description=_(error.message).format(prefix=ctx.prefix),
        )
    except (RuntimeError, aiohttp.ServerDisconnectedError):
        self._play_lock(ctx, False)
        error_embed = discord.Embed(
            title=_("The connection was reset while loading the playlist.")
        )
        await self._embed_msg(ctx, embed=error_embed)
        return None
    except Exception as e:
        self._play_lock(ctx, False)
        raise e
    self._play_lock(ctx, False)
    return track_list