How to fix audio rejected by discord's size limit — free browser tool
- Step 1Open discord-fit — Go to /audio-tools/discord-fit. The FFmpeg WebAssembly engine loads locally in your browser — no server contact.
- Step 2Drop the rejected file — Drag in the audio file Discord refused — MP3, WAV, FLAC, M4A, OGG, or Opus. One file per run. On free it must be under 50 MB and 30 minutes.
- Step 3No setup needed — There's no options panel for this tool. The 25 MB target and MP3 output are fixed; the bitrate is computed from the duration. Nothing to choose.
- Step 4Run it — Click to process. FFmpeg re-encodes the file to a Discord-safe size in your browser. Your audio never leaves the tab.
- Step 5Verify the new size — The result panel shows the output is under 25 MB (the input vs output bytes are displayed). The filename gets a
-25mbsuffix so you can tell it apart from the original. - Step 6Re-attach to Discord — Download the MP3 and drop it back into your message. No rejection this time — it's under the cap and plays inline.
Why Discord rejected the file — and the fix
Discord rejects on size (25 MB free) and would reject some types; MP3 output sidesteps both. discord-fit handles the size case.
| Rejection cause | discord-fit fixes it? | How |
|---|---|---|
| Over 25 MB (free tier) | Yes | Re-encodes to MP3 sized under 25 MB |
| Over 50 MB (server-boost limit) | Partly | Output is 25 MB, well under boosted caps too |
| Unusual codec Discord won't inline | Yes | Outputs MP3, which Discord always inlines |
| Over 500 MB (even on Nitro) | No | Use audio-compressor with a custom target |
Input size/duration vs output target
The free-tier limits gate the INPUT; the 25 MB is the OUTPUT target. They're different numbers and both matter.
| Tier | Max input size | Max input duration | Output target |
|---|---|---|---|
| Free | 50 MB | 30 min | 25 MB |
| Pro | 200 MB | 120 min | 25 MB |
| Pro-media | 100 GB | unlimited | 25 MB |
| Developer | 100 GB | unlimited | 25 MB |
Privacy vs typical web converters
The core reason to use an in-browser tool for a rejected file you may not want to share.
| Aspect | discord-fit (this tool) | Typical upload converter |
|---|---|---|
| Where it runs | Your browser (FFmpeg WASM) | Their server |
| File leaves your device | No | Yes, uploaded |
| Works offline after load | Yes | No |
| Account needed (free) | No | Varies |
Cookbook
Real 'too large' rejections and how the tool resolves them, sized from its duration→bitrate logic.
The 'your files are too powerful' rejection
A WAV export trips Discord's size error instantly. The tool returns a small MP3 that uploads cleanly.
Input: interview.wav 6 min 62 MB (over 50 MB -> Pro needed) Discord: 'Your files are too powerful' (over 25 MB) discord-fit (Pro, automatic): duration = 360 s -> wants ~559 kbps -> capped at 320 kbps Output: interview-25mb.mp3 6 min ~13.7 MB (MP3 320 kbps) Re-drag into Discord -> accepted.
A 30 MB MP3 just over the line
Only slightly over 25 MB, but Discord still refuses it. A modest bitrate drop fixes it.
Input: demo.mp3 18 min 30 MB (224 kbps) Discord: rejected (over 25 MB) discord-fit (automatic): duration = 1080 s -> wants ~186 kbps -> snaps DOWN to 160 kbps Output: demo-25mb.mp3 18 min ~21.6 MB (MP3 160 kbps) Accepted.
A codec Discord won't preview
Even under 25 MB, some containers won't play inline. Re-encoding to MP3 gives an inline player.
Input: voice.opus 10 min 8 MB (under cap, but no inline
player in some clients)
discord-fit (automatic):
duration = 600 s -> wants ~336 kbps -> capped at 320 kbps
Output: voice-25mb.mp3 10 min ~22.9 MB (MP3 320 kbps)
Now plays inline everywhere.Private recording stays private
The whole point of the in-browser approach: a sensitive recording is never uploaded to fix the size.
Input: legal-call.m4a 25 min 40 MB Processed: 100% in-browser (FFmpeg WASM) — no network upload Output: legal-call-25mb.mp3 25 min ~22.9 MB (MP3 128 kbps) File never touched a server during compression.
Boosted server with a higher limit
Even servers with a raised limit accept the 25 MB output comfortably — the tool targets the conservative free cap.
Server limit: 50 MB (boost level 2) Input: 70 MB FLAC, 12 min discord-fit -> ~22.0 MB MP3 (256 kbps) Well under the boosted 50 MB cap. For higher quality up to the boost limit, use audio-compressor with a larger target.
Edge cases and what actually happens
Input over the free 50 MB limit
Blocked on freeThe free tier caps the INPUT at 50 MB — separate from the 25 MB output target. A 62 MB rejected file won't even load on free; you'd need Pro (200 MB). The output is always sized to 25 MB regardless.
Input longer than 30 minutes on free
Blocked on freeThe free duration cap is 30 minutes. A 35-minute file that Discord rejected for size still can't be processed on free because of the duration limit. Upgrade to Pro (120 min) or split it first with audio-splitter.
File was rejected for type, not size
MP3 fixes itIf a file is under 25 MB but won't play inline because of its container/codec, re-encoding to MP3 here gives Discord a format it always inlines. The output is standard MP3 with an inline player in every client.
File still rejected after compression
Check server limitdiscord-fit outputs under 25 MB, which the standard free cap accepts. If it's still rejected, the channel/server may enforce a lower custom limit, or you're hitting a different rule (e.g. spam filters). Use audio-compressor to target a smaller size if the server cap is below 25 MB.
Output noticeably under 25 MB
By designShort files cap at 320 kbps and long files get the 4% overhead reserve plus a down-snap, so the result lands below 25 MB — exactly what you want so the re-upload never bounces off the cap.
Re-uploading the original by mistake
Check the suffixThe tool names the output with a -25mb suffix (e.g. demo-25mb.mp3). If Discord rejects again, make sure you attached the -25mb file and not the original — easy to grab the wrong one from a downloads folder.
Nitro user with a 500 MB file
Use audio-compressorFiles that are too large even for Nitro's 500 MB cap, or where you want to use that headroom for quality, aren't this tool's job — it targets 25 MB only. Use audio-compressor with a custom target up to 500 MB.
Re-encoding a lossy original adds artifacts
Generation lossIf the rejected file was already a lossy MP3/AAC/Opus, re-encoding to MP3 is a second lossy pass. Usually fine, but if you have the lossless source, feed that instead for a cleaner result at the fitted size.
Browser ran out of memory on a huge file
Tier/memory limitWebAssembly processing happens in your browser's memory. Very large files near the Pro/Pro-media ceiling can be memory-heavy. Close other tabs, or split the file with audio-splitter and fit each part.
Corrupt download from a chat app
Decode errorIf the source file was a partial/corrupt download, FFmpeg may fail to decode it and report an error. Re-download or re-export the original and try again.
Frequently asked questions
Why does Discord say my audio file is too large?
On the free tier, attachments must be 25 MB or smaller. Anything bigger triggers the rejection (sometimes shown as 'Your files are too powerful'). This tool re-sizes the audio under 25 MB so it uploads.
Will the fixed file actually upload, or just get rejected again?
It uploads. The tool snaps the bitrate down with a 4% overhead reserve, so the output reliably comes in under 25 MB. If it's still rejected, double-check you attached the -25mb output and not the original, and verify the channel doesn't enforce a lower custom limit.
Is my file uploaded to fix it?
No — and that's the main reason to use this over a web converter. Everything runs in your browser via FFmpeg WebAssembly. The rejected file, which may be a private recording, never leaves your device.
Do I need Nitro?
No. This tool targets the free 25 MB cap specifically, so you can fix rejected uploads without paying for Nitro. (If you do have Nitro and want to use the 500 MB headroom for quality, use audio-compressor instead.)
Are there settings to get right?
No. There's no options panel — the 25 MB target and MP3 output are fixed, and the bitrate is computed automatically from the file's duration. Drop the file, run it, re-upload. Two clicks.
My file is under 25 MB but Discord still won't preview it — can this help?
Yes. Some codecs/containers don't play inline in every client. Re-encoding to MP3 here gives Discord a format it always inlines, so the recipient gets a scrubber instead of a download-only attachment.
What's the difference between the 25 MB and the 50 MB limit I keep seeing?
25 MB is Discord's free upload cap (the output target). 50 MB is this tool's free-tier INPUT limit — the biggest file you can load to compress without upgrading. They're different numbers: a 62 MB rejected file needs Pro to even load, but the output is still sized to 25 MB.
Can I fix a file longer than 30 minutes?
Not on the free tier — the free duration cap is 30 minutes. Use Pro (120 min) or split the file with audio-splitter and fit each segment under 25 MB separately.
What format do I get back?
MP3 (encoded with libmp3lame). Discord always inlines MP3 and never rejects it on type, so size is the only variable — and the tool fixes that. The filename gets a -25mb suffix.
Does it work offline?
Once the page and the WebAssembly engine have loaded, the compression itself runs locally and doesn't need a network connection — because nothing is being uploaded. A web converter can't do that.
Why is the output smaller than 25 MB?
The tool sizes to fit the cap, not to fill it. Short files cap at 320 kbps (so they're small), and the 4% overhead reserve plus down-snapping keep long files a little under 25 MB so the re-upload never bounces off the limit.
It's still too big even after compressing — now what?
Either the channel enforces a custom limit below 25 MB, or your input couldn't load on your tier. Use audio-compressor to target a specific smaller size, or split a long file with audio-splitter and upload in parts.
Privacy first
Every JAD Audio tool runs entirely in your browser via FFmpeg (WebAssembly) and RNNoise. Your audio files never leave your device — verified by zero outbound network requests during processing.