I think part of the issue is that, when you return a fallback icon (the B icon in this case), you serve it with an HTTP 404 status.
In Firefox (and possibly other browsers), the browser will not attempt to render images returned with a 404 status. Changing it to return a 200 status should work.
Oh, I didn't know this about Firefox - thanks a lot, ldjb!
My intention was to be a good HTTP citizen and return the correct status code with a decent representation.
Returning 200 for "not actually found what you wanted, but here's something else you can use" seems odd, but maybe I'm just being too pedantic here and the pragmatic way would be better.
Thanks for pointing out the Firefox issue again, it would have probably never occured to me that FF behaves that way. That hint saved me a lot of time "fixing" the parser.
In Firefox (and possibly other browsers), the browser will not attempt to render images returned with a 404 status. Changing it to return a 200 status should work.