Discord error 30046: Maximum edits to messages older than 1 hour reached
Last verified against Discord Developer Docs - Opcodes and status codes
Maximum number of edits to messages older than 1 hour reached. Try again laterWhat error 30046 means
Discord limits how many times a message that is more than an hour old can be edited within a window. Fresh messages can be edited freely (subject to normal rate limits); old messages get a much smaller budget. When you exhaust it you get 30046 and must wait.
This was introduced to stop bots from using a single long-lived message as a constantly-refreshing display. Server status boards, leaderboards, stock tickers and "last updated" embeds that patch the same message every 30 seconds all run into it within a few hours of the message's creation. The exact budget is not published; in practice it is on the order of a handful of edits per hour per old message, so anything more frequent than every few minutes will trip it.
The message itself is fine and can still be read and deleted. Only further edits are blocked until the window resets.
What it looks like
{
"message": "Maximum number of edits to messages older than 1 hour reached. Try again later",
"code": 30046
}Why it happens
- Live-updating embed that patches the same message every few seconds or minutes, indefinitely
- Retry logic that re-sends the same edit after a transient failure, consuming the budget
- Multiple bot instances editing the same pinned status message
How to fix Discord error 30046
- 1Back off when 30046 appears; the response may include a retry_after hint, otherwise wait at least several minutes
- 2Reduce the edit cadence for messages older than an hour (for example every 10-15 minutes)
- 3Delete and re-send the message periodically (for example hourly) so edits land on a fresh message, if the channel tolerates it
- 4Make edits conditional: only PATCH when the rendered content actually changed
How to stop it recurring
Design status displays around message age: edit freely in the first hour, then switch to a slower schedule or rotate to a new message. Store the message's creation timestamp (decode it from the snowflake) and branch on it in your updater.
Message age is decodable offline from the snowflake, so your updater can switch cadence without an extra fetch. Pacing patterns for exactly this kind of long-lived display are in chatbot API rate limiting, and the announcement-channel variant of the same protection is 20022.
Official reference: Discord Developer Docs - Opcodes and status codes. See all Discord error codes or the Discord limits and quotas.
Related codes
Error 30046 - quick answers
What does Discord error 30046 mean?
Discord limits how many times a message that is more than an hour old can be edited within a window. Fresh messages can be edited freely (subject to normal rate limits); old messages get a much smaller budget. When you exhaust it you get 30046 and must wait. This was introduced to stop bots from using a single long-lived message as a constantly-refreshing display.
How do I fix Discord error 30046?
1. Back off when 30046 appears; the response may include a retry_after hint, otherwise wait at least several minutes 2. Reduce the edit cadence for messages older than an hour (for example every 10-15 minutes) 3. Delete and re-send the message periodically (for example hourly) so edits land on a fresh message, if the channel tolerates it 4. Make edits conditional: only PATCH when the rendered content actually changed
Can I retry after error 30046?
Yes - this is a retryable condition. Back off (start around one second and double on each attempt, with jitter) and watch for a retry-after hint from the platform before resending.
Stop debugging Discord by hand
Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.