fix token exchange

token exchange is broken on golang:master since 97a89b3be5a

at some point in the last few months i signed the google cla already. with tests cause tests should have caught this imo
Errorf would be sufficient here and at the rest.