# Buggy code
def group_embed_fields(fields: List[EmbedField], max_chars=1000):
    curr_group = []
    ret = []
    current_count = 0

    for i, f in enumerate(fields):
        f_len = len(f.value) + len(f.name)

        # Commands start at the 1st index of fields, i < 2 is a hacky workaround for now
        if not current_count or f_len + current_count > max_chars or i < 2:
            current_count += f_len
            curr_group.append(f)
        elif curr_group:
            ret.append(curr_group)
            current_count = 0
            curr_group = [f]
    else:
        if curr_group:
            ret.append(curr_group)

    return ret


# Traceback (discord.ext.commands.errors.CommandInvokeError)
Exception in command 'help'
Traceback (most recent call last):
File "c:\envs\sass2\lib\site-packages\discord\ext\commands\core.py", line 79, in wrapped
ret = await coro(*args, **kwargs)
File "c:\envs\sass2\lib\site-packages\redbot\core\commands\help.py", line 664, in red_help
await ctx.bot.send_help_for(ctx, thing_to_get_help_for)
File "c:\envs\sass2\lib\site-packages\redbot\core\bot.py", line 530, in send_help_for
return await self._help_formatter.send_help(ctx, help_for)
File "c:\envs\sass2\lib\site-packages\redbot\core\commands\help.py", line 126, in send_help
await self.format_bot_help(ctx)
File "c:\envs\sass2\lib\site-packages\redbot\core\commands\help.py", line 469, in format_bot_help
await self.make_and_send_embeds(ctx, emb)
File "c:\envs\sass2\lib\site-packages\redbot\core\commands\help.py", line 361, in make_and_send_embeds
await self.send_pages(ctx, pages, embed=True)
File "c:\envs\sass2\lib\site-packages\redbot\core\commands\help.py", line 627, in send_pages
await destination.send(embed=page)
File "c:\envs\sass2\lib\site-packages\redbot\core\commands\context.py", line 82, in send
return await super().send(content=content, **kwargs)
File "c:\envs\sass2\lib\site-packages\discord\abc.py", line 823, in send
data = await state.http.send_message(channel.id, content, tts=tts, embed=embed, nonce=nonce)
File "c:\envs\sass2\lib\site-packages\discord\http.py", line 222, in request
raise HTTPException(r, data)
discord.errors.HTTPException: 400 BAD REQUEST (error code: 50035): Invalid Form Body
In embed: Embed size exceeds maximum size of 6000

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

Traceback (most recent call last):
File "c:\envs\sass2\lib\site-packages\discord\ext\commands\bot.py", line 863, in invoke
await ctx.command.invoke(ctx)
File "c:\envs\sass2\lib\site-packages\discord\ext\commands\core.py", line 728, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "c:\envs\sass2\lib\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: HTTPException: 400 BAD REQUEST (error code: 50035): Invalid Form Body
In embed: Embed size exceeds maximum size of 6000

# Fixed code
def group_embed_fields(fields: List[EmbedField], max_chars=1000):
    curr_group = []
    ret = []
    current_count = 0

    for i, f in enumerate(fields):
        f_len = len(f.value) + len(f.name)

        # Commands start at the 1st index of fields, i < 2 is a hacky workaround for now
        if not current_count or f_len + current_count < max_chars or i < 2:
            current_count += f_len
            curr_group.append(f)
        elif curr_group:
            ret.append(curr_group)
            current_count = f_len
            curr_group = [f]
    else:
        if curr_group:
            ret.append(curr_group)

    return ret