Keir Starmer is paying the price for failing to distance himself from a Corbyn-era promise.