{"record":{"id":"8ebeb28227d3d8ce","repo":"invoke-ai/InvokeAI","slug":"only-mistralencoder-checkpoint-config-models-are-s","errorCode":null,"errorMessage":"Only MistralEncoder_Checkpoint_Config models are supported here.","messagePattern":"Only MistralEncoder_Checkpoint_Config models are supported here\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"invokeai/backend/model_manager/load/model_loaders/mistral_encoder.py","lineNumber":904,"sourceCode":"            f\"Received: {submodel_type.value if submodel_type else 'None'}\"\n        )\n\n\n@ModelLoaderRegistry.register(\n    base=BaseModelType.Any,\n    type=ModelType.MistralEncoder,\n    format=ModelFormat.Checkpoint,\n)\nclass MistralEncoderCheckpointLoader(ModelLoader):\n    \"\"\"Load a Mistral encoder from a single safetensors file (text-only).\"\"\"\n\n    def _load_model(\n        self,\n        config: AnyModelConfig,\n        submodel_type: Optional[SubModelType] = None,\n    ) -> AnyModel:\n        if not isinstance(config, MistralEncoder_Checkpoint_Config):\n            raise ValueError(\"Only MistralEncoder_Checkpoint_Config models are supported here.\")\n\n        match submodel_type:\n            case SubModelType.TextEncoder:\n                return self._load_text_encoder(config)\n            case SubModelType.Tokenizer:\n                logger = InvokeAILogger.get_logger(\"MistralEncoderProcessor\")\n                return _load_tokenizer_for_model(Path(config.path), logger)\n\n        raise ValueError(\n            \"Only Tokenizer and TextEncoder submodels are supported. \"\n            f\"Received: {submodel_type.value if submodel_type else 'None'}\"\n        )\n\n    def _load_text_encoder(self, config: MistralEncoder_Checkpoint_Config) -> AnyModel:\n        from safetensors.torch import load_file\n\n        logger = InvokeAILogger.get_logger(self.__class__.__name__)\n        target_device = TorchDevice.choose_torch_device()","sourceCodeStart":886,"sourceCodeEnd":922,"githubUrl":"https://github.com/invoke-ai/InvokeAI/blob/0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06/invokeai/backend/model_manager/load/model_loaders/mistral_encoder.py#L886-L922","documentation":"MistralEncoderCheckpointLoader._load_model (single-file safetensors format) requires the config to be MistralEncoder_Checkpoint_Config and raises a ValueError otherwise. This loader is registered for ModelType.MistralEncoder with format Checkpoint; receiving a Diffusers-folder or GGUF config means the caller bypassed the registry's format-based dispatch or built a mismatched config record.","triggerScenarios":"Calling MistralEncoderCheckpointLoader._load_model with MistralEncoder_Diffusers_Config or MistralEncoder_GGUF_Config (or any non-checkpoint AnyModelConfig), typically via direct loader invocation or hand-constructed config records.","commonSituations":"Custom import scripts that point this loader at a diffusers folder; test harnesses mocking AnyModelConfig; model records whose format field says 'checkpoint' but whose config class was instantiated for another format.","solutions":["Supply a MistralEncoder_Checkpoint_Config whose path points to the single safetensors file.","Let the ModelManager/model loader registry resolve the loader from the config's format instead of instantiating MistralEncoderCheckpointLoader directly.","For GGUF files use the GGUF loader path (MistralEncoderGGUFLoader); for HF folders use MistralEncoderDiffusersLoader.","Re-import/convert the model so InvokeAI generates a config record matching the actual file format."],"exampleFix":"// before\nmodel = checkpoint_loader._load_model(gguf_cfg, SubModelType.TextEncoder)  # ValueError\n// after\nfrom invokeai.backend.model_manager.configs.mistral import MistralEncoder_Checkpoint_Config\nassert isinstance(cfg, MistralEncoder_Checkpoint_Config)\nmodel = checkpoint_loader._load_model(cfg, SubModelType.TextEncoder)","handlingStrategy":"type-guard","validationCode":"from invokeai.backend.model_manager.configs.mistral import MistralEncoder_Checkpoint_Config\n\ndef can_load_with_checkpoint_loader(cfg: AnyModelConfig) -> bool:\n    return isinstance(cfg, MistralEncoder_Checkpoint_Config)","typeGuard":"def is_mistral_checkpoint_config(cfg: AnyModelConfig) -> TypeGuard[MistralEncoder_Checkpoint_Config]:\n    return isinstance(cfg, MistralEncoder_Checkpoint_Config)","tryCatchPattern":"try:\n    model = loader._load_model(cfg, SubModelType.TextEncoder)\nexcept ValueError as e:\n    if \"Only MistralEncoder_Checkpoint_Config\" in str(e):\n        model = registry_loader_for(cfg)._load_model(cfg, SubModelType.TextEncoder)\n    else:\n        raise","preventionTips":["Use checkpoint configs only with single .safetensors files; route GGUF/folder records to their own loaders.","Prefer registry-based loading over direct loader instantiation.","Validate config class before custom loader calls."],"tags":["python","model-loading","config-validation","invokeai"],"backgroundTag":"unsupported-model-config-type","analyzedSha":"0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06","analyzedAt":"2026-08-29T04:46:49.967Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}