We've found through experience that the diagnostic message can grow unbounded. I've seen attempts that have diagnostic messages over 1MB. Since the message is stored in the state store, it's a bad idea to allow the message to grow unbounded. Instead, there should be a property that sets a maximum size on the message.
I suspect that some of the ZK state store issues we've seen in the past were due to the size of the diagnostic messages and not to the size of the classpath, as is the current prevailing opinion.
An open question is how best to prune the message once it grows too large. Should we
- truncate the tail,
- truncate the head,
- truncate the middle,
- add another property to make the behavior selectable, or
- none of the above?