throw an exception in a degenerate case since it is a red flag that our algorithm is broken