We had some confusion around the parameter number limit actually being unsigned in the protocol (#2795). This likely means we have other bugs in this area; specifically, message lengths are currently treated as int, although they probably need to be uint.