can this happen just by passing something wrong to `__setitem__`? (i.e., is this checking that internal functions work or checking that the user provided good input)?