"I did tell them"
Sometimes you feel you did say it. On Friday you mentioned what a week it had been. On Saturday you said you were shattered. On Sunday morning you remarked that it would be nice to have a bath in peace for once. As far as you're concerned the message was delivered three times, and there's no excuse for not having got it.
Read those sentences again as the other person heard them. "What a week" is an observation. "I'm shattered" is a report. "It'd be nice to have a bath in peace for once" is a wish addressed to nobody in particular, and the words "for once" carry a faint complaint. None of them says "I'd like you to do the children's bedtime tonight so that I can have a bath." You know that's what they meant, because you know what you were thinking when you said them. The listener only has the words.
Boaz Keysar and Anne Henly tested how well speakers can judge this. They had people say ambiguous sentences aloud to a listener while trying to get across one particular meaning. Afterwards the speakers estimated how often the listener had understood. They consistently overestimated. They expected to be understood more often than they were. The researchers also had a third person listen in, someone who'd been told what the speaker meant. These overhearers didn't overestimate in the same way. So the error was particular to the speaker, who couldn't hear their own sentence as ambiguous because they knew what they meant by it.
A hint is an ambiguous sentence said on purpose. It's built so that it can be taken as a request or as a passing remark. It's useful to you because it can be denied, since if they don't respond you haven't really asked. The trouble is that a sentence that can be taken as a passing remark usually will be, by someone who's doing the online shop.
Here are some common ones, with what the speaker means. These are my own examples. "Don't worry about my birthday" means "I'd like you to make a fuss of my birthday." "I suppose I'll do it, then" means "I want you to offer." "It's fine, go out with your friends" means "I'd like you to stay in, or at least to check that it really is fine." "Have you seen the state of the garden?" means "Please mow the lawn." In every case the listener has two reasonable choices. They can take the words at face value, or they can guess that you mean something else and risk being told they're imagining things. Most people, most of the time, take the words at face value, and it isn't laziness on their part. Taking people at their word is a form of respect.
Signals sent by message fare even worse. Kruger and colleagues ran five experiments on tone in email. People writing messages were confident that their tone, whether joking or serious, would come across. The people reading them did much worse at telling which was which than the writers expected. The writers could hear the tone in their heads as they typed, and couldn't imagine the words without it. So a text that says "No, it's fine, have a good time" will be read as permission. The sender may hear the hurt in it, but the person reading it can't.
So I'd ask you to be strict with yourself about this. You can only say you told them if a stranger reading a transcript would know what you wanted.