Give the gift of Drupal. All merchandise is 50% off through 2016.
_uc_cart_product_get_options() fails with the above error if the $data field does not exist in the product $item. This can happen when previewing a new product and there is a module that implements hook_uc_product_alter(), and that implementation calls _uc_cart_product_get_options().
Yes, you're not really supposed to call underscore functions from outside of that one module, but uc_price_per_role does.