Looking with Robert at the knit indices: the version that's raising this error *does* have a pointer to a compression parent, but that parent is marked 'a' for absent in the index, and that may be because it is not referenced by the revision graph or inventory graph.
_get_components_positions should actually be calling get_parents_with_ghosts, or (better) get_compression_parents, which can return both the parent(s) and the method. If we didn't exclude ghosts, then we'd get a more obvious error about not being able to reconstruct the parent.
Looking with Robert at the knit indices: the version that's raising this error *does* have a pointer to a compression parent, but that parent is marked 'a' for absent in the index, and that may be because it is not referenced by the revision graph or inventory graph.
_get_components _positions should actually be calling get_parents_ with_ghosts, or (better) get_compression _parents, which can return both the parent(s) and the method. If we didn't exclude ghosts, then we'd get a more obvious error about not being able to reconstruct the parent.