I was working on a TFS lab deployment today and to speed up testing I set it to pick the build of the TFS build that actually builds the code, as opposed to queuing a new one each time. It took me ages to remember/realise why it kept trying to deploy some ancient build that had long since been deleted from my test system.

The reason was the build means the last successful build, not the last partially successful build. I had a problem with my code build that means a test was failing (a custom build activity on my build agent was the root cause if the issue). Once I fixed my build box so the code build did not fail the lab build was able to pickup the files I expected and deploy them
Note that if you tell the lab deploy build to queue it’s own build it all attempt to deploy this even if it is partially successful.