Unfortunately, that doesn't seem to be the problem. I added message_body to the ad_page_contract block and then used a validate block to check it. It's a proper list. I even split it up and reconstituted it, just to be sure.
I don't know much at all about how forms are evaluated and values checked. I can't see any reason for this to be failing, but it is. I have to go off and work on something else now, but any suggestions on what else to look at are welcome!