the UPS shipping rate is based on the total weight of the cart. If the weight of an item is set to 0, and it is the only item in the cart, the shipping lookup will fail.
Keep in mind that the shipping rate is stored in a session variable.
When testing the shipping rate lookup, you will need to close the browser completely to start a new browsing session and clear the previous shipping rate value.