But if we cache the exception, the next time you call the memoized func you won't get a second chance of getting the value from the server. Imagine if nicknym is down temporarily or something, you're screwed for that key for the time of your session.

I still think the approach of "retry until it doesn't fail" is better than this.