{"record":{"id":"c26f84b9c62b6ba5","repo":"huggingface/transformers","slug":"auto-class-is-not-a-valid-auto-class","errorCode":null,"errorMessage":"{auto_class} is not a valid auto class.","messagePattern":"(.+?) is not a valid auto class\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"src/transformers/configuration_utils.py","lineNumber":1270,"sourceCode":"    @classmethod\n    def register_for_auto_class(cls, auto_class=\"AutoConfig\"):\n        \"\"\"\n        Register this class with a given auto class. This should only be used for custom configurations as the ones in\n        the library are already mapped with `AutoConfig`.\n\n\n\n        Args:\n            auto_class (`str` or `type`, *optional*, defaults to `\"AutoConfig\"`):\n                The auto class to register this new configuration with.\n        \"\"\"\n        if not isinstance(auto_class, str):\n            auto_class = auto_class.__name__\n\n        import transformers.models.auto as auto_module\n\n        if not hasattr(auto_module, auto_class):\n            raise ValueError(f\"{auto_class} is not a valid auto class.\")\n\n        cls._auto_class = auto_class\n\n    @classmethod\n    def is_remote_code(cls) -> bool:\n        \"\"\"Return whether the current config is custom code, i.e. code loaded from the hub, or class that we just\n        registered via `register_for_auto_class`.\"\"\"\n        return cls._auto_class is not None\n\n    @classmethod\n    def is_custom_code(cls) -> bool:\n        \"\"\"Return whether the current config is custom code, i.e. either code loaded from the hub, or defined in any\n        user-specific module/session.\"\"\"\n        return cls.is_remote_code() or not cls.__module__.startswith(\"transformers.\")\n\n    def _get_generation_parameters(self) -> dict[str, Any]:\n        \"\"\"\n        Checks if there are generation parameters in `PreTrainedConfig` instance. Note that","sourceCodeStart":1252,"sourceCodeEnd":1288,"githubUrl":"https://github.com/huggingface/transformers/blob/a597f974857b3d92939971296bc0deb93d33d780/src/transformers/configuration_utils.py#L1252-L1288","documentation":"ValueError from PreTrainedConfig.register_for_auto_class when the given auto_class name (string or class __name__) does not exist as an attribute of transformers.models.auto. Only classes actually exported by the auto module (e.g. AutoConfig, AutoModelForCausalLM) can back a registration.","triggerScenarios":"MyConfig.register_for_auto_class(\"AutoModelForCausulLM\") (typo), passing \"AutoModel\"-style names that are not in the auto module, or passing a custom class whose name differs from any auto export.","commonSituations":"Registering custom remote-code models for auto-loading; renamed or hypothetical auto classes; code written against a different Transformers version where an auto class does not exist.","solutions":["Use a valid auto class name, e.g. \"AutoConfig\" for configs or \"AutoModelForCausalLM\" for models.","Check availability first: import transformers.models.auto as auto; hasattr(auto, name).","Verify the name is exported in your installed Transformers version's auto module."],"exampleFix":"// before\nMyConfig.register_for_auto_class(\"AutoModelForTextGeneration\")  # ValueError\n\n// after\nMyConfig.register_for_auto_class(\"AutoModelForCausalLM\")","handlingStrategy":"validation","validationCode":"import transformers.models.auto as auto\nvalid = [n for n in dir(auto) if n.startswith(\"Auto\")]\nif auto_class_name not in valid:\n    raise ValueError(f\"{auto_class_name!r} not in {valid}\")\nMyConfig.register_for_auto_class(auto_class_name)","typeGuard":"def is_valid_auto_class(name: str) -> bool:\n    import transformers.models.auto as auto\n    return hasattr(auto, name)","tryCatchPattern":null,"preventionTips":["Reference auto class names from the transformers.models.auto module instead of typing them by hand.","Pin the Transformers version your custom model code was developed against."],"tags":["config","auto-class","registration"],"backgroundTag":null,"analyzedSha":"a597f974857b3d92939971296bc0deb93d33d780","analyzedAt":"2026-08-14T18:24:08.354Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}