If TopLevelItemDescriptor.newInstance throws a RuntimeException, why are we wrapping it in an IllegalArgumentException?
Let it throw something like Failure and control the rendering.