AMQP allows a receiver to settle an incoming message before it has all been received, e.g. to reject a large message without receiving it all. However the receiver must still be prepared to receive frames of the message that might have been in flight, until it gets the remote settle.
Proton does not support this. Settling an incomplete incoming message advances the receiver's delivery-id. Subsequent frames cause and error like: "amqp:session:invalid-field:sequencing error, expected delivery-id 1, got 0"