Blow up if we can't do a plausible lookup

Returning `None` is liable to cause problems for the caller. If we
don't find a match, and we can't even guess a value, then it's
serious enough to raise an exception.