This issue has shown that, when we introduce new providers and propagate the configs to users, then remove the config ("asf" was removed and renamed to "default"), user configuration breaks
- #6358

One way of dealing with this is checking at startup time whether the configured providers are available, and if not, log a warning and fall back to the default provider.
def __init__(
        self,
        name,
        start=_default,
        check=_default,
        listener=None,
        active=False,
        stop=None,
        lifecycle_hook: ServiceLifecycleHook = None,
        backend_state_lifecycle: BackendStateLifecycle = None,
    ):
        self.plugin_name = name
        self.start_function = start
        self.listener = listener
        self.check_function = check if check is not _default else local_api_checker(name)
        self.default_active = active
        self.stop_function = stop
        self.lifecycle_hook = lifecycle_hook or ServiceLifecycleHook()
        self.backend_state_lifecycle = backend_state_lifecycle
        call_safe(self.lifecycle_hook.on_after_init)
    def start(self, asynchronous):