Which of these sentences is true and what's the difference between I kept waiting and I was kept waiting?
- I kept waiting for an hour last night &
- I was kept waiting for an hour last night.
Both sentences are valid; however, they differ in meaning.
"I kept waiting for an hour last night" could be rephrased as, "I waited last night (for someone or something) and continued waiting for an hour." A person might similarly say, "I kept waiting for you last night, but you never showed up." In this first sentence, the speaker is taking an active role in waiting; it's their decision to wait.
The second sentence is written in the passive voice and means that an unnamed person made the speaker wait for an hour. It could be rephrased as, "Someone kept me waiting for an hour last night." In this second sentence, the speaker is being made to wait by another person; this suggests that their waiting is less voluntary and they have little or no choice but to wait.
I kept waiting for an hour last night.
I was kept waiting for an hour last night.
Both the sentences are grammatically correct, with a difference in meaning.
The first sentence indicates that you continued waiting of your own free will for an hour last night. On the other hand, the second sentence indicates that someone made you have to wait for an hour last night. You should use the first sentence when you want to say that you waited without being asked or forced by someone. However, if someone asked or forced you to do so, you should use the second sentence.