Embeds: the limits nobody reads until they hit one

Discord Bots Reviewed September 6, 2026 2 min read

Embeds are the boxes bots use for anything longer than a sentence. They have hard character limits, and the failure mode is a rejected message rather than a truncated one — which is why the bug always appears with real data and never in testing.

The limits worth remembering

PartMaximum
Title256 characters
Description4096 characters
Fields25 per embed
Field name256 characters
Field value1024 characters
Footer text2048 characters
Everything in one embed, combined6000 characters
Embeds per message10
Going over does not truncate, it fails

Discord rejects the whole message. If your bot builds an embed from a list that is usually short, the day someone has thirty items is the day the command stops working entirely — and if you are not logging errors, it fails silently. Truncate on your side, always.

Building embeds that survive real data

  1. Cut every string to its limit as you set it

    One helper that trims to a maximum and adds an ellipsis, used everywhere, removes this entire category of bug.

  2. Paginate lists rather than growing them

    Twenty-five fields is the wall. A list that could exceed it needs pages with buttons, not a bigger embed.

  3. Test with the largest realistic input

    The longest username, the biggest inventory, the most items. Testing with «test» proves nothing about production.

  4. Log the rejection

    Discord's error says which field was too long. That message is genuinely helpful and it is wasted if nothing writes it down.

Fewer, shorter embeds read better anyway

The limits push you towards something that was already true: an embed with twenty-five fields is a wall of text nobody reads. If you are near the limit, the message is probably trying to do too much rather than needing more room.

How to confirm it worked

Run the command against your largest realistic dataset and confirm the message sends, with visible truncation rather than an error.