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.
container = super().get_service_container(name)
        if container:
            return container
        if not self.exists(name):
            return None
        
        
        plugin = self._load_service_plugin(name)
        if not plugin or not plugin.service:
            return None
        with self._mutex:
            if plugin.service.name() not in self._services:
                super().add_service(plugin.service)
        return super().get_service_container(name)
    @property
    def api_provider_specs(self) -> Dict[str, List[str]]:
        """
        Returns all provider names within the service plugin namespace and parses their name according to the convention,
        that is "<api>:<provider>". The result is a dictionary that maps api => List[str (name of a provider)].
        """
        if self._api_provider_specs is not None:
            return self._api_provider_specs
        with self._mutex:
            if self._api_provider_specs is None:
                self._api_provider_specs = self._resolve_api_provider_specs()
            return self._api_provider_specs
    @log_duration()
    def _load_service_plugin(self, name: str) -> Optional[ServicePlugin]: