This bothers me a lot. Cardoso may well have doped. But if the B does't back up the A, you don't give him what basically amounts to a life time ban, No, UCI should go to the lab and say "next time you need to do better". (Better handling and storage of the B sample, better care running the tests of both, etc.)
If UCI really does know the A is correct, maybe they slap the rider on the hand and give him time already served. I believe this is a year and a half at this point. Plenty. The rider's union should be pretty upset about this.