You set a new avatar for your Discord webhook, but the old image still shows in messages. This happens because Discord caches webhook avatars aggressively on both the client and server side. The platform stores the avatar URL permanently once the webhook is created or updated, and it does not automatically refresh when you change the image. This article explains why the avatar stays the same and provides three proven methods to force the update to take effect.
Key Takeaways: Fixing a Stuck Discord Webhook Avatar
- Server Settings > Integrations > Webhooks > Edit > Avatar: Upload a new avatar image here, then click Save Changes.
- Clear Discord cache (Ctrl + Shift + I > Application > Clear Storage): Removes locally cached avatar data that prevents the new image from showing.
- Delete and recreate the webhook: Forces Discord to generate a fresh webhook ID and avatar URL, bypassing all caching issues.
Why Discord Webhook Avatars Get Stuck
When you create a webhook in Discord, the platform assigns a unique ID and a default avatar URL. If you upload a custom image, Discord stores that image on its CDN and links it to the webhook ID. However, the CDN URL for the avatar is static. Once the webhook sends a message, the client caches the avatar from that URL. Even if you upload a new avatar, the URL remains the same, so the client loads the old cached image instead of the new one.
Discord does not provide a built-in mechanism to invalidate the avatar cache. The old image persists in three places: your local Discord client cache, the browser cache if you use the web version, and the Discord CDN edge servers. The CDN itself may take up to 24 hours to reflect the change, though typically the delay is shorter. The core problem is that the avatar URL does not change when the image is updated, so all caches think the old image is still current.
Why the Avatar URL Stays the Same
Discord webhooks use a REST API endpoint for avatars: https://cdn.discordapp.com/avatars/{webhook_id}/{avatar_hash}.png. The avatar hash is generated from the image data. When you upload a new image, the hash changes only if the image data is completely different. If you upload the same file or a very similar image, the hash may remain identical. More importantly, the client caches based on the full URL, not the image content. Since the base URL and the hash both can remain the same, the client has no reason to re-download the image.
Steps to Force the Webhook Avatar to Update
Use these methods in order. Start with the simplest and escalate only if needed.
Method 1: Upload a New Avatar via Server Settings
- Open Server Settings
Right-click your server icon in the left sidebar. Select Server Settings from the context menu. - Go to Integrations
In the left menu, click Integrations. Then click Webhooks to see all webhooks on the server. - Edit the webhook
Click the Edit button next to the webhook whose avatar is stuck. - Upload a new avatar
Click the current avatar image. Select a new image file from your computer. Discord accepts PNG, JPEG, and GIF files up to 256 KB. - Save Changes
Click Save Changes at the bottom of the edit window. The webhook now has a new avatar assigned to its ID. - Send a test message
Use the webhook URL to send a message. Check if the new avatar appears. If it still shows the old image, proceed to Method 2.
Method 2: Clear Discord Cache
- Open Developer Tools
Press Ctrl + Shift + I on Windows or Cmd + Option + I on Mac. This opens Discord’s developer tools panel. - Go to the Application tab
In the developer tools toolbar, click Application. If you do not see it, click the double-arrow icon to reveal hidden tabs. - Clear storage
In the left sidebar under Storage, click Clear storage. Then click the Clear site data button. This removes all cached images, scripts, and data for Discord. - Reload Discord
Press Ctrl + R or Cmd + R to reload the Discord client. The app will re-download all assets, including the webhook avatar. - Send another test message
Use the webhook URL again. The new avatar should now appear. If it does not, proceed to Method 3.
Method 3: Delete and Recreate the Webhook
- Delete the existing webhook
Go to Server Settings > Integrations > Webhooks. Click the Delete button next to the problematic webhook. Confirm the deletion. - Create a new webhook
Click Create Webhook. Give it a name and select the channel where messages should be posted. - Upload the avatar
Click the avatar placeholder and upload your desired image. Click Save Changes. - Copy the new webhook URL
Click Copy Webhook URL. Update any scripts or services that use the old URL with this new one. - Send a test message
Use the new URL to send a message. The new avatar will display immediately because the webhook ID and avatar URL are both fresh.
If Discord Still Shows the Old Avatar
Avatar Does Not Change After Deleting and Recreating
If you deleted the webhook and created a new one but the old avatar still appears, the issue is likely on the receiving end. The channel may have a cached version of the old webhook message. Discord does not retroactively update avatars on already-sent messages. The new avatar only applies to messages sent after the change. Delete any old test messages in the channel to avoid confusion.
Webhook Avatar Shows as Default Discord Logo
If the avatar reverts to the default Discord logo after you set a custom image, the uploaded file may be too large or in an unsupported format. Discord limits avatars to 256 KB and accepts only PNG, JPEG, and GIF. Resize or compress your image using a tool like Paint or an online compressor. Re-upload the smaller file and save changes.
Avatar Changes but Only for Some Users
This is a CDN propagation delay. Discord’s content delivery network serves the old avatar from edge servers that have not yet fetched the new image. Wait 15 to 30 minutes and ask users to reload Discord. If the issue persists beyond 24 hours, contact Discord support through Settings > Help & Support > Submit a request.
Webhook Avatar Update Methods Compared
| Method | Effectiveness | Time Required |
|---|---|---|
| Upload new avatar in settings | Works if cache is not blocking | 2 minutes |
| Clear Discord cache | Resolves local client caching | 5 minutes |
| Delete and recreate webhook | Guaranteed to show new avatar immediately | 5 minutes |
The delete-and-recreate method is the most reliable because it generates a new webhook ID and avatar URL, bypassing all caches. Use it when the first two methods fail.
You now have three ways to fix a Discord webhook avatar that refuses to update. Start by uploading a new avatar in Server Settings. If that does not work, clear the Discord cache using Ctrl + Shift + I and the Application tab. For a guaranteed fix, delete the webhook and create a fresh one with the correct avatar. As a next step, review your webhook scripts to ensure they use the new URL after recreation. An advanced tip: for automated services, store the webhook URL in an environment variable so you can update it without editing code.