func (c *JujuCommandBase) missingModelError(store jujuclient.ClientStore, controllerName, modelName string) error { // First, we'll try and clean up the missing model from the local cache. err := store.RemoveModel(controllerName, modelName) if err != nil { logger.Warningf("cannot remove unknown model from cache: %v", err) } currentModel, err := store.CurrentModel(controllerName) if err != nil { logger.Warningf("cannot read current model: %v", err) } else if currentModel == modelName { if err := store.SetCurrentModel(controllerName, ""); err != nil { logger.Warningf("cannot reset current model: %v", err) } } errorMessage := "model %q has been removed from the controller, run 'juju models' and switch to one of them." modelInfoMessage := "\nThere are %d accessible models on controller %q." models, err := store.AllModels(controllerName) if err == nil { modelInfoMessage = fmt.Sprintf(modelInfoMessage, len(models), controllerName) } else { modelInfoMessage = "" } return errors.Errorf(errorMessage+modelInfoMessage, modelName) }