A profile picture is a small thing until it is missing. A chat list full of initials makes a familiar customer look like a stranger, and the first question any team asks of a WhatsApp inbox is why the photos it sees on the phone do not all appear in the tool.
This guide explains exactly how Spun loads WhatsApp profile pictures, why it loads them one conversation at a time instead of all at once, which pictures WhatsApp will never hand to any tool, and what you can do about the ones that stay blank. It is written for people who run their business on WhatsApp and want to know what to expect, not for developers.
How Spun loads a profile picture
Spun loads a picture when a person looks at that person. The moment you open a conversation, Spun asks WhatsApp for that one contact's picture, shows it at the top of the chat, and from then on shows it in your chat list as well. Chats you have not opened yet show initials, and groups show the group icon until someone opens the group once. The sender pictures next to messages inside a group load the same way, as you scroll the open group.
Pictures load one at a time per workspace, with a short random pause between them, and there is a ceiling on how many Spun will look up in a day. A screen of chats you open one after the other fills in over a minute or two rather than instantly. A picture Spun has already fetched is kept, so the next time it is a plain cache hit, and it is refreshed after a week on the next open.
If a lookup comes back empty, Spun remembers that for about a day before asking again for the same chat, so a contact who has no picture is not queried on every click. If you open a chat and see initials, give it a day and open it again.
When Spun releases an update you will see an "Update available" prompt in the app. Refresh the page when it appears so you are running the version this guide describes.
Why Spun does not load every picture at once
It would be easy to fetch every contact's picture the moment a number is connected, and Spun used to do exactly that. It stopped on purpose. Pulling hundreds or thousands of profile pictures in a burst is a lookup pattern no person produces, and it lands on the day your number is newest and most watched. WhatsApp's systems treat bulk contact and profile lookups as bulk activity, the same family as mass messaging, whether or not a single message goes out.
Opening a chat, on the other hand, is ordinary use. WhatsApp Web itself fetches the picture of the conversation you open, and that is the behaviour Spun copies: nothing from the list, one picture per opened chat, paced, and never in parallel. It is slower to fill in on the first day and far more stable after that, and it is the approach we are keeping. A tool that loads every picture instantly is making a trade on your behalf with your number.
Related: The reasons WhatsApp bans numbers · How to warm up a WhatsApp number
Why some chats keep their initials
Not every picture can be loaded, by any tool, and it helps to know which case you are looking at. WhatsApp decides what your number is allowed to see, and Spun shows what WhatsApp hands over. In practice a blank comes from one of four situations.
| What is going on | What you see | What to do |
|---|---|---|
| The chat has not been opened since the update | Initials in the list | Open the chat once; the picture then shows in the list too |
| The person limits who sees their photo | Initials, on your phone as well unless they saved your number | Nothing on your side; it loads if they save your number |
| The chat is a hidden-number chat WhatsApp has not synced a picture for | Initials, no phone number shown | Link the chat to a contact that has their phone number, then open it again |
| The lookup came back empty recently | Initials for about a day | Open the chat again the next day |
The second row is the one people most often mistake for a bug. With WhatsApp's "My contacts" privacy setting, the person's own address book has to contain your number; saving them on your phone changes nothing.
The privacy setting that hides a picture from you
Every WhatsApp user chooses who can see their profile photo: everyone, their contacts, their contacts except some, or nobody. For a business this matters more than for a friend, because most customers have never saved the business number. If a customer's setting is "My contacts" and your number is not in their address book, WhatsApp shows them to you as the grey silhouette on your phone, in WhatsApp Web, and in Spun alike. No tool can fetch a picture its number is not allowed to see.
The test is simple: look at the same chat on the phone the number is connected to. If the phone shows the silhouette, Spun matching it is correct behaviour. If the phone shows a photo and Spun still shows initials after you have opened the chat, that is a different case, and it is worth telling us about with the number so we can trace that one lookup.
Groups and group members
A group's own picture loads when someone opens the group, and then stays in the list. Inside the open group, the small picture next to each member's messages loads as you scroll, one member at a time, under the same pacing as everything else. A member whose number WhatsApp hides from the group is shown by their profile name and initials; the section above on hidden-number chats applies to them too, and linking their own chat once names them everywhere.
What Spun stores, and for how long
A picture Spun fetches is stored in your workspace's private media storage so it does not have to be fetched again, and it is refreshed about once a week when the chat is opened. Spun never turns a hidden-number chat into a fake phone number to look a picture up, and never runs lookups against numbers you have no conversation with.
To avoid asking WhatsApp twice for the same public picture, Spun may reuse a picture it recently fetched for the same WhatsApp account elsewhere in Spun. Profile pictures are the public photo the person chose to show; nothing private to a conversation is ever shared this way.
What to do when a picture is missing
- 1
Refresh when the app asks
The "Update available" prompt means a newer version is waiting. Refresh, then look again.
- 2
Open the chat
Pictures load for the conversation you open, then stay in the list. A list you have only scrolled past will still show initials.
- 3
Check the phone
If the phone the number is connected to shows a silhouette for the same person, their privacy setting is doing that, and nothing on your side changes it.
- 4
Link hidden-number chats
For a chat shown without a phone number, link it to a contact that has the person's number, then open it again.
- 5
Wait a day for a recent miss
A lookup that came back empty is not repeated for about a day. Opening the chat the next day asks again.
