improve exception reporting in id generator

have better exception messages that explain what happened if we have no parent in the AutoIdGenerator.

a question: the ParentIdGenerator prefers the assigned id if there is one. should the AutoIdGenerator not follow the same logic?