Closely related to "Why isn’t my Gravatar image updating?"

Ever since Tony the Pony hijacked Jon Skeet's account, the avatar image on Jon's old profile page now shows the updated image of Tony, as one might expect.

However the smaller "thumbnail" image attached to Tony's questions and answers still shows a picture of Jon.

Until you (the reader) clear your browser cache, that is.

Possible solution: change the thumbnail image URL when the user updates their avatar image.

(Presumably this is already being done for the full-size image as that updates immediately.)

  • 4
    This is just a caching issue. Why do you feel it is a problem with SO? – GEOCHET Nov 4 '09 at 17:51
  • Because it is affected by the image URLs and/or cache-control directives that come from SO. – Perpetual Motion Goat Nov 4 '09 at 17:56
  • 1
    WTF? A bounty for a cache issue? Some people are really desperate... – Ladybug Killer Feb 4 '10 at 10:26
  • Nooooooooooooooooooooooooooooooooooooooo! Not another question about avatars... A whole legion of unicorns just died and a few kittens passed out. – alex Feb 4 '10 at 10:56
  • @pi, it's not "another question about avatars." This question is 3 months old now. I just added the bounty to bump it so I could get an answer to accept. It worked. – Perpetual Motion Goat Feb 4 '10 at 11:02
  • I see it's old, it's just that I'm scarred by these questions, unfortunately (I asked one related to this as well a while back, damn avatar wouldn't update properly). – alex Feb 4 '10 at 11:04

That image is www.gravatar.com/avatar/6d8ebb117e8d83d74ea95fbdd0f87e13?s=32&d=identicon&r=PG and the servers at gravatar.com really tell your browser to only cache it for 5 minutes. Maybe, some day in the past, they told your browser to cache forever, but if so then that has been fixed by Gravatar long ago.

EDIT -- It seems Gravatar is the cause of the problem after all, as they seem to be setting the Last-Modified date to the date one first subscribed (or Wed, 11 Jan 1984 08:00:00 GMT when not subscribed), rather than to the date one changed the avatar. For the image above, one gets Last-Modified: Sat, 27 Sep 2008 17:32:56 GMT though Jon changed it more than a year later, somewhere after November 2nd 2009.

When requesting a resource, most (if not all) browsers will add a conditional If-Modified-Since header for things they already cached, and indeed then Gravatar currently (wrongly) returns HTTP/1.1 304 Not Modified, and does not return any image data. This is not according to the official description from late 2005:

I’ve implemented an If-Modified-Since handler that will return 304 Not Modified if the requested avatar has not been changed since the last time your browser downloaded it

(Thanks to Kip for finding the issue with Last-Modified.)

Instead of changing the avatar, Jon could also temporarily have used a different email address to get a different avatar at Stack Overflow. In a comment he confirmed that such was not the case; he indeed changed the avatar itself.

  • It seems Gravatar now returns a proper Last Modified date again, for subscribers. Like Jon's image today shows Last-Modified: Mon, 20 Sep 2010 18:40:47 GMT. I cannot verify it's not some random date though. – Arjan Sep 28 '11 at 20:20

Take your case to Gravatar, since they provide the Avatar.

  • 3
  • 1
  • 6
    In soviet russia. Gravatar fixes you! – Ólafur Waage Nov 4 '09 at 19:31
  • +1 @ Ólafur, brilliant! – William Hilsum Nov 5 '09 at 2:39
  • But SO provides the URL – Perpetual Motion Goat Nov 5 '09 at 13:39

Er... what?

All Jon Skeet gravatars look correct to me.

  • 2
    You are bounty hungry today. – random Feb 4 '10 at 10:20
  • That particular example is very old. Everyone will have the new version in their cache by now. – Perpetual Motion Goat Feb 4 '10 at 10:20
  • 3
    @random, I added the bounty to attract more answers to find one to accept (to get my accept rate up to 100%.) But Brad's answer misses the point and IMO Jeff's answer should have been a comment instead of an answer. – Perpetual Motion Goat Feb 4 '10 at 10:22

You must log in to answer this question.