The lead Vancouver recruiter could have screwed up, and might have accidentally dropped the "when I send you the offer" when he hadn't yet talked it over with everyone else. I know nothing about the OP, but maybe he just didn't make the cut.
This is my assumption too. It's typical for some recruiters to never close the loop with candidates who are rejected because they're no longer "of value" to them. A sad commentary on recruiting in general, but it happens.
It certainly wasn't anyone in the hiring pipeline who screwed up.
It's someone very high up in the Amazon food chain, responsible for failing to create a hiring process that emphasizes the need to treat candidates respectfully at all stages of the process.
And that means, for every candidate, having one person take ownership of the communication, start to finish (regardless of the outcome). You now -- "be respectful, be kind. And always, always close the loop."
It's like, really, really simple. But somehow Amazon and so many other companies seem incapable of wrapping their organizational heads around it.