I too was hoping for a senior level promotion. The last project I worked on, I was the only non-senior level developer in a team of 5. I went out of my way to ensure we released a well designed, built and tested system on time. At times I felt like I was committing more to the project than any of my more senior comrades. Come release time, I even saw one of the design decisions I had insisted on save us from down-time. All of this I was sure would lead me to the desired promotion.
Come performance review time, I was rated at the top performance tier, as I had the past couple of years. Unfortunately however, I was informed not enough time had passed since my last level increase, but I was sure to get it if I kept it up for another 1-2 years.
It's hard to describe the feeling of defeat I felt at that point. I resigned and left within the next few months. What I found most off putting, was when meeting my skip-manager (your managers manager) for the first time during my exit interview, all doors for a senior level promotion were suddenly open, to incentivise me to stay. Doesn't feel great when negotiations with your employer are comparable to those had with your cable provider.