It is literally impossible to make plans using WhatsApp

Here’s a bold statement: it is literally impossible for two people to make plans with complete certainty using WhatsApp (or any messaging service for that matter). And yet, people successfully use WhatsApp for this purpose every day. How is that possible?

Well, what these ignorant rubes don’t realize is that the plans they think they’ve made actually haven’t been made at all! It’s all a big lie! Nothing is certain! Anything can happen! You’re all flirting with chance, teetering on the edge of the abyss! And soon your carefully constructed lives will collapse like houses built on sand! You’re all going to die! Ahahahahahaha~!

…ahem.

Back to the original statement. Let’s explore it with a simple thought experiment.

Making plans

Let’s say Alice and Bob have previously (offline) made plans to go see a movie. All they have left to do is decide on a time and place to meet up. They’re both at home now, so they’re using WhatsApp to communicate.

Alice starts by proposing a time:

She sent the message, but Bob hasn’t seen it yet. But then:

Aha! The famous blue checkmarks. Bob has seen Alice’s message (ok, technically it just means he’s opened the WhatsApp thread, but let’s not get into those particular weeds right now and just assume that blue ticks == seen).

Bob hasn’t replied yet, so Alice doesn’t know if Bob agrees to her proposal. But just a few seconds later…

Great! Bob agrees to Alice’s proposal. That means their plans have now been made.

Except that they haven’t.

See, while Bob has sent his confirmation message to Alice, he doesn’t know if Alice has actually read his confirmation. And until he can be certain that she has, he can’t be sure about their plans.

But then Bob sees the blue checkmarks appear at his message:

So that clears it up, right? Alice has read his agreement. Their plans are made, right?

No! Wrong again!

See, while Alice has sent her blue checkmark to Bob, she doesn’t know whether or not that blue checkmark actually made it to Bob, and if it did, whether or not Bob has seen it. So from Alice’s perspective, her reasoning is as follows:

  • “I sent a blue checkmark to Bob, but I don’t know whether he’s received it.”
  • “Therefor, I don’t know whether Bob knows I’ve seen his confirmation message.”
  • “Bob will only execute on our plans if he knows I’ve seen his confirmation.”
  • “But since I don’t know if he has, I don’t know if he will execute on our plans.”
  • “Therefor, our plans are still uncertain.”

And Bob, being a creature similarly made up out of pure logic, naturally follows the same reasoning and reaches the same conclusion: their plans are still uncertain.

But maybe Alice can seal the deal by sending another message?

Ok, message sent, blue checkmarks received. Now we’re finally good, right?

Nope.

This time it’s Bob who can’t be certain whether or not those final blue checkmarks he sent actually made it to Alice. And because he can’t be certain of this, both he and Alice follow the same chain of reasoning as above to conclude that their plans are still uncertain.

So now maybe Bob should send another message, or…?

It’s pointless. I hope by now you realize that this cycle will never end. Whoever sent those last blue checkmarks will never know whether the other party actually received them. To reach undisputable certainty about their plans, an infinite number of messages are required. And so, Alice and Bob, unable to live with even the smallest sliver of uncertainty, will never meet, and their movie will forever remain unseen. What a tragic tale.

Generalizing

If you recognize this conundrum, then congratulations, you’re familiar with the Two Generals’ Problem. And if you didn’t, then you are now. I’ve always liked this thought experiment so I figured I’d make a “modern” version of it. And while I chose WhatsApp as my example, the problem applies to any system where two parties communicate over an unreliable medium (which is basically any computer network).

It really is a miracle anything gets done at all around here.