Why WhatsApp says “Waiting for this message,” and how to actually fix it.
You open WhatsApp Web. A new message arrives. Instead of the message body, you see a grey italic placeholder: “Waiting for this message. This may take a while.” The phone has the real message. The web tab is stuck. This post is the field guide to why it happens, the quick fixes that usually work, the quick fixes that don’t, and the structural fix if you’re building a product that can’t afford to ever show it.
What the message actually means
WhatsApp uses end-to-end encryption. Every message your contact sends gets encrypted individually for every device authorized on your WhatsApp account. Your phone is one device. WhatsApp Web is another. WhatsApp Desktop is a third. The sender’s phone encrypts the message body separately for each one.
Now imagine the recipient opened WhatsApp Web in their browser two days ago, then closed the tab. From WhatsApp’s point of view that browser session is still authorized. The sender still encrypts to it. The encrypted blob shows up at WhatsApp’s servers. But the browser tab isn’t open to receive it. When the user finally reopens that tab, the message metadata comes through (sender, timestamp, “there is a message here”) but the encrypted body is long gone from the relay. The web client knows a message exists, can’t unlock it, and shows you the grey placeholder.
The placeholder is essentially WhatsApp Web saying: I know a message exists. I can’t read it. I’m waiting for the phone to wake up and share the body with me.
The four scenarios that trigger it
In practice almost every “Waiting for this message” event comes down to one of four scenarios. Knowing which one you’re in tells you which fix will work.
Things that don't fix it (despite what forums say)
Three popular “fixes” that get recommended on Reddit and the WhatsApp help forums but don’t actually do anything:
- Clearing browser cache. The placeholder isn’t cached. It’s an active state of an active session. Clearing cache just logs you out, which means the next re-link starts a new session anyway, which would have been the actual fix.
- Restarting your router. The web tab’s problem is the encrypted body never reached it. The router doesn’t hold the body. The body is on the sender’s phone.
- Updating WhatsApp on the web client. There’s nothing to update. Web WhatsApp lives in your browser tab. The issue is session state, not client version.
The only fixes that actually resolve “Waiting for this message” are the ones above: get the phone online and active, or unlink-and-re-link the second device.
Why this matters if you're building a product
If you’re reading this because of a personal WhatsApp Web annoyance, the above fixes will get you unstuck. If you’re reading this because your product depends on a customer’s WhatsApp staying connected, the situation is structurally worse than it looks.
Browser-tab sessions are best-effort by design. They go stale during normal phone behavior: airplane mode on a flight, battery dying overnight, an iOS update that suspends background network for a few minutes. The instant the second device falls behind by more than a few minutes, the next inbound message gets the “Waiting” placeholder, and depending on how stale the session is, the placeholder may never resolve.
The first time a customer’s WhatsApp drops for an hour and they miss a $5,000 lead because of a grey italic placeholder in your dashboard, you find out very quickly that “just tell them to open WhatsApp on their phone” is not a real feature.
Agency products built on browser-tab WhatsApp Web (or libraries that drive WhatsApp Web under the hood) silently inherit this fragility. Every drop becomes a support ticket. Every stale session becomes lost messages. Every reconnect becomes a customer asking why their inbox is empty.
Two structural alternatives exist, each with real trade-offs.
Build on WhatsApp without inheriting WhatsApp Web’s fragility.
Mossmoon runs the always-on connection so your customers never see “Waiting for this message” again. Same QR scan they already know. No business verification. No 24-hour window.
Related reading: Business API vs personal API · WhatsApp for real estate · HighLevel guide