If you use a Repeater against a QAbstractItemModel and then remove data from the model, the delegate for that item automatically gets its index set to -1 and the item bindings get re-evaluated with that immediately before the delegate gets deleted. That's not the nicest design decision on the part of Repeater, but my code should have had the bounds check and there are workarounds for the other consequences.