Libervia's browser_side is using getEntityData first to retrieve an avatar when it's not in its own cache. This seems wrong because the entity data which are stored for libervia in the backend are not updated when a user change his profile picture (entity data are managed per profile). Instead we can directly call getCard (which is now done when getEntityData returns nothing) or eventually replace the call to getEntityData by the one of a new method which would look for the avatar in the self.avatars_cache of the plugin XEP-0054. This self.avatars_cache is kind of a shared cache for the avatars (stored in the database but updated instantly when we receive an avatar update).
Generally this plugin could offer a more convenient method to directly return the avatar's path. Otherwise we need to deal with the cache and callbacks in each frontend that would use avatars.
These changes could be done after actionResult is removed.