The .startWithUnavailable(boolean) option is an old school concept, from back in the Jetty 7.0.0 days (circa 2008)
What it does is allow the WebAppContext to continue running if any Servlet init failed (from a servlet / filter / listener / etc) to initialize.
This value is set to false by default.
This is not what you want.
The .throwUnavailableOnStartupException(boolean) is a configuration related to a single WebAppContext.
It will collect all of the various reasons the webapp failed to init and then report it as a single Throwable on startup.
The key here is "on startup".
By default, the DeploymentManager will "on startup" deploy what it finds, then start monitoring the configured directories for changes and perform hot deploys.
The "on startup" part of this will throw an exception up to the Server and let the server know that something failed.
But if you have a hot deploy, then this exception is logged, and the WebAppContext is set to unavailable, but nothing else.
Now, for the sad part, the way that the XML is loaded in `jetty-home` (or the older `jetty-distribution`) all webapps are considered "hot deploy"