As far as the sender is concerned the message has been delivered, but the recipient never gets it or has any idea that a message was sent at all.
The problem has been known about for a while - it was first reported in 2011 - and some people are so angry about the lack of a fix that they're suing Apple. But before you call your lawyer, it might be better to try solving the problem yourself. Here's how to do it.
What causes the iMessage bug?
When you send text or picture messages on iOS with iMessage enabled, your device checks with Apple to see if the recipient is an iMessage user. If they are then Apple intercepts the message and sends it via iMessage; if they aren't then it sends the message as an SMS or MMS.
It doesn't matter whether your phone company charges: if you're messaging another iOS user, your iMessages are free.
That's great unless you dump iOS but keep the same phone number. In some cases it seems that Apple continues to think that you're an iMessage user, so it sends you iMessages - even though you can't receive them.
There are two ways to solve the problem. The first is to turn off iMessage before you change your device, and the second is to alert Apple after you've changed your device.
How to fix the iMessage bug before you change phones
If you still have your iPhone, you can solve the problem by turning off iMessage before you change phones. Go into Settings > Messages and turn iMessage off, and then go into Settings > FaceTime and sign out. If you have more than one iOS device, do it on all of them.
Once you've done this, any messages you send to other iPhone users should be in green rather than the blue of iMessage. It's a good idea to get a friend to text you to check that the change has been processed by Apple before you dump your phone completely.
How to fix the iMessage bug when you don't have the phone any more
If you don't have your iPhone any more - or if you do and turning off iMessage didn't do the trick - you'll need to get Apple to remove your phone number from iCloud. That means calling Apple Support with your iCloud ID and phone number and asking them to manually remove your details, or using My Support Profile to unregister the device.