Simpler and better to throw Failure than to hand-craft an error result.
Throw Failure, which FormException would just delegate to when we are not coming from a regular form’s Apply button, as in this case.
Fail with a clear message when a mode parameter is given but no such descriptor exists.
Otherwise get e.g.:
java.lang.IllegalArgumentException: java.lang.NullPointerException
	at hudson.model.ItemGroupMixIn.createProject(ItemGroupMixIn.java:253)
	at hudson.model.ItemGroupMixIn.createTopLevelItem(ItemGroupMixIn.java:175)
	at jenkins.model.Jenkins.doCreateItem(Jenkins.java:2827)
	at jenkins.model.Jenkins.doCreateItem(Jenkins.java:308)
	at …
Caused by: java.lang.NullPointerException
	at hudson.model.ItemGroupMixIn.createProject(ItemGroupMixIn.java:251)
	... 65 more