Actually it succeeds when there is a namespace declaration. It returns an empty set, which is what the spec says it returns, so that counts as success.
Your definition of success seems to be different from the one in the spec. You don't say so, but we can guess that you are expecting the "project" elements to be returned even though they are in a different namespace from the one you are searching.
I won't go further; @alecxe has given you answer, and you will find the same question answered a thousand times if you search for "XPath default namespace". In future, though, please don't assume that we know implicitly what you expect your incorrect code to do: tell us the wanted result; and don't assume that we know what you mean by "failure": tell us what actually happens.