The inactive set behind the VAR_DEPS check took staged rows that are not delete-marked with active ne 1, plus control rows with active ne 1. A staged DELETE of a relied-on row was in neither arm, so it passed every guard and the engine aborted every read after approval. Delete-marked staged rows are now in the inactive set, and stagedata.test.4 covers it.