Currently its raising a KeyError because the cache lookup fails. That means we are catching KeyErrors in a few places. A more explicit error (inheriting from KeyError perhaps) would make for easier code.
Would have been helpful if this gave more detail, not sure where the problem is. But price tiers work just fine now.