There was a change for
OFBIZ-4389, trunk r1167116, to include the carrierRoleTypeId here. The carrierRoleTypeId should be present, because the ftl in r1167116 puts it there.
It's possible that the exception is due to a missing carrierRoleTypeId. If as you say the problem occurs in trunk, I suspect you are doing something slightly different to me when I tested my patch.
Can you confirm that carrierRoleTypeId is indeed missing, i.e. there are not two @ characters in the shipmentMethod parameter?
I believe it should be there, because
puts it there.
If it's missing, do a View Source in the browser and check what's listed in the options within the shipmentMethod.
Can you reproduce the problem on the demo site?