When an image fails to load — a broken URL, or a new user who hasn't uploaded one yet — detect it with <img onerror> and fall back to initials or a default icon. Design for all three states: a skeleton while loading, initials on failure, the real photo on success.
To show several users in a tight space, avatars are commonly overlapped in a stack with a trailing "+5" for however many don't fit — the "avatar group" pattern.
Accessibility: if the photo's identity matters, put the person's name in alt; if it's decorative or a name label already sits next to it, leave alt="" to avoid redundancy.