You changed the avatar URL for your Discord webhook, but the old avatar still shows in messages. This happens because Discord caches the avatar image to reduce server load. The cache does not refresh automatically when you update the URL. This article explains why the cache exists and provides step-by-step methods to force an update.
Key Takeaways: Force Discord Webhook Avatar Refresh
- Webhook URL with unique query parameter: Append a random string to the avatar URL to bypass the cache.
- Delete and recreate the webhook: Resets all cached data including the avatar.
- Wait up to 30 minutes: Discord’s CDN cache expires automatically after a few minutes.
Why Discord Caches Webhook Avatars
When you set a webhook avatar via the Discord API or a webhook URL, Discord downloads the image and stores it on its content delivery network (CDN). The CDN serves the same image to every channel and server that uses that webhook. This caching system speeds up message delivery and reduces bandwidth usage.
The cache does not monitor the original URL for changes. If you edit the webhook and replace the avatar URL, Discord continues to serve the old cached version. The new image only appears after the cache expires or is manually invalidated. Cache duration varies from a few minutes to 30 minutes depending on CDN load and image popularity.
The same caching behavior applies to webhook names. If you change the webhook name, the old name may persist in cached messages for a short time. Only the avatar is affected by URL changes because the name is stored as text, not as a remote file.
Steps to Fix the Stale Avatar
- Add a cache-busting parameter to the avatar URL
Edit the webhook and change theavatar_urlto include a random query string. For example, changehttps://example.com/avatar.pngtohttps://example.com/avatar.png?v=123456. Thevparameter can be any random number or timestamp. Discord treats this as a new URL and fetches the image again. Use a different value each time you update the avatar. - Delete the webhook and create a new one
Open Server Settings > Integrations > Webhooks. Click the webhook name, then click Delete Webhook. Confirm the deletion. Create a new webhook with the same name and channel. Set the new avatar URL. This completely removes all cached data for the old webhook. - Wait for the CDN cache to expire
If you cannot edit the webhook or delete it, wait up to 30 minutes. Discord’s CDN refreshes automatically. Send a test message after 30 minutes to see if the new avatar appears. This method works but is not immediate. - Use a different image hosting service
Some image hosts add cache headers that tell Discord to refresh sooner. Use a service that supports short cache times, such as Imgur or a personal server withCache-Control: no-cacheheaders. Upload the avatar image to the new host and update the webhook URL.
If the Avatar Still Does Not Update
Webhook URL points to a deleted or moved image
If the original image file is deleted or the hosting URL changes, Discord continues to serve the last cached version. Verify the avatar URL is accessible by opening it in a browser. If the browser shows a 404 error, upload the image to a new URL and update the webhook.
Webhook was created by a bot or integration
Bots that create webhooks often store the avatar URL internally. Editing the webhook from Discord’s interface may not override the bot’s cached URL. Check the bot’s configuration or code. Update the avatar_url parameter in the bot’s webhook creation or edit request.
Multiple webhooks with the same name
If you have several webhooks named “Announcements” in different channels, you may be editing the wrong one. Go to Server Settings > Integrations > Webhooks and verify the channel name under each webhook entry. Edit only the webhook assigned to the channel where the old avatar appears.
Browser or app cache
Discord’s web and desktop apps also cache images locally. Press Ctrl+F5 to force refresh the Discord client. On the mobile app, close and reopen the app. This clears the local image cache and forces the app to fetch the new avatar from Discord’s CDN.
| Method | Speed | Permanent Fix |
|---|---|---|
| Cache-busting query parameter | Immediate | Yes, if you update the webhook URL |
| Delete and recreate webhook | Immediate | Yes |
| Wait for CDN cache expiration | Up to 30 minutes | Yes, temporary |
| Use different image host | Immediate | Yes, if the new host respects cache headers |
The cache-busting method using a random query parameter is the fastest and most reliable fix. It does not require deleting the webhook or waiting for the CDN. Simply edit the webhook’s avatar URL and append ?v= followed by a unique number. Use a timestamp or a random integer to guarantee uniqueness each time you update.
If you manage multiple webhooks through a bot or script, incorporate the cache-busting parameter into your code. Generate a new random value with every webhook edit request. This prevents stale avatars from appearing in any channel.
For users who need immediate results without editing URLs, deleting and recreating the webhook is the second-best option. The new webhook starts with a clean cache and displays the correct avatar from the first message.