Animated GIF avatars no longer supported by default

I suppose SVG avatar support would allow SVG animation to work.

1 Like

On Discord, we can’t upload SVG custom emoji because vector drawings can potentially break stuff.

SVGs can be arbitrarily complex to render (imagine an SVG file containing instructions to render hundreds of thousands of bezier curves or something). Which means that someone could craft an SVG that would slow down/freeze the client while it tries to render - and it’d be pretty hard to develop a reliable heuristic for detecting this.

Builtin emojis are OK to be SVGs as they’re obviously not malicious, but we can’t guarantee this for custom emojis.

I suppose that would be the same for any app that allows users to upload SVG files, but I don’t know if some restrictions can be set to limit potential issues.


Oh no! Gosh darn it, my animated profile won’t work on new Discourse instances any more. I suggest you can make a line in app.yml the same as the host name line giving the ability to enable it. Of course, it would take a lot of work and would be in very late future updates.

#GIF_avatars: Y (Default disabled)


Will it cause the same problem if a user upload an animated avatar from an external site via a link?

1 Like

Looks like this change has also affected animated custom emojis too. I’ve found it out the hard way: tried to update the existing set of emojis and ended up with static images instead. And now I can’t even revert it back. :cry:


Hi, does this work? Because I’ve tried everything and nothing’s moving.

No, as said in the OP we removed the support for GIF avatars.


What about user card?


Still works on user cards just fine, check mine.

We removed support from avatars because we have to resize those a lot, which isn’t a problem in user cards.


I’m running 2.6.0 in production, when I upload gif to my user card it does not animated at all. And I noticed the gif I uploaded was transformed into a static image. Should I change anything in settings? Currently there’s no allow_animated_avatars nor allow_animated_thumbnails option in my site settings


I just download your gif and upload to my user card, it doesnt work even here :sweat_smile:


Circling back here, you can use an animated webp for the user card background. Just updated mine here to test.


Has there been a plugin made to make this work?

1 Like

I second that question. Any progress there?

I am afraid no plugin was made, it would be a very complex plugin if it was to retain the old functionality.

We used to use the library: Gifsicle: Command-Line Animated GIFs to resize the animated avatars, this dependency was removed.

To implement in a plugin there are a few options

  1. You could pull in the dependency somehow, very complex especially from plugin, then patch the code to support this in a plugin (extremely hard)

  2. You could give up on resizing animated avatars and add a patch to a plugin (medium)

  3. You could figure out some other way of resizing animated avatars and put that in a plugin (extremely hard)

No experimentation here is queued from the Discourse team. We have completely abandoned the idea animated avatars for now.


These don’t work any more on the forum I moderate, either for user card or Profile Header image. Users may keep what they have, but if they try to update, they get a static image.

I tried uploading different webp files, into a post as well as user card, and got this notification for both:

This is a popular feature with our users, who often put a lot of effort into their Profile pages, can anyone advise please?

1 Like

It’s not going to be easy, because we’ve removed the animated gif dependencies from our app pipeline, as indicated in the post directly above yours.


Yes, I understand gifs might be a goner, though it is a shame. What could be causing the above notice when I try to upload webp files?

1 Like

Okay that explains why I can’t find the setting.

I was trying to enable animated user card background. Noticed it is still working here. :thinking::joy:

Look forward to when this option returns. Spent too much time trying to figure out why I couldn’t get it to work. At least now I know I am not crazy. :wink:


Better late than never - I’ve been working on a plugin to re-enable this.