descriptor: preserve existing message on decode errors (#299)