The Jenkins global configuration (/configure) page currently suffers from a chicken-and-egg load order problem between plugins that consume credentials (e.g. Docker plugin) and plugins that provide credentials (e.g. AWS Secrets Manager provider).
- The configuration block for the consuming plugin, and the configuration block for the providing plugin, are displayed at the same time.
- The providing plugin has not been configured yet.
- The providing plugin is a remote provider, and as such is contractually bound to throw an unchecked exception when it is uninitialised or otherwise cannot contact its backing store.
When the uninitialised remote provider is asked to provide credentials, the exception it throws will crash the /configure page (or part of it).
- Jenkins users will see a (partially) broken /configure page. (But if they can use Configuration As Code, they can get round this.)
- Plugin integration tests exercising the /configure page will break. (HtmlUnit and the Ajax controller will fail when they detect the page has crashed. There is no workaround for this.)