{"record":{"id":"9c37639e8197fd5e","repo":"unclecode/crawl4ai","slug":"chunking-strategy-must-be-an-instance-of-chunkings-9c3763","errorCode":null,"errorMessage":"chunking_strategy must be an instance of ChunkingStrategy","messagePattern":"chunking_strategy must be an instance of ChunkingStrategy","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"crawl4ai/async_configs.py:1847","lineNumber":1015,"sourceCode":"        self.check_robots_txt = check_robots_txt\n\n        # User Agent Parameters\n        self.user_agent = user_agent\n        self.user_agent_mode = user_agent_mode\n        self.user_agent_generator_config = user_agent_generator_config\n\n        # Validate type of extraction strategy and chunking strategy if they are provided\n        if self.extraction_strategy is not None and not isinstance(\n            self.extraction_strategy, ExtractionStrategy\n        ):\n            raise ValueError(\n                \"extraction_strategy must be an instance of ExtractionStrategy\"\n            )\n        if self.chunking_strategy is not None and not isinstance(\n            self.chunking_strategy, ChunkingStrategy\n        ):\n            raise ValueError(\n                \"chunking_strategy must be an instance of ChunkingStrategy\"\n            )\n\n        # Set default chunking strategy if None\n        if self.chunking_strategy is None:\n            self.chunking_strategy = RegexChunking()\n\n        # Deep Crawl Parameters\n        self.deep_crawl_strategy = deep_crawl_strategy\n        \n        # Experimental Parameters\n        self.experimental = experimental or {}\n\n\n    def __getattr__(self, name):\n        \"\"\"Handle attribute access.\"\"\"\n        if name in self._UNWANTED_PROPS:\n            raise AttributeError(f\"Getting '{name}' is deprecated. {self._UNWANTED_PROPS[name]}\")\n        raise AttributeError(f\"'{self.__class__.__name__}' has no attribute '{name}'\")","sourceCodeStart":997,"sourceCodeEnd":1033,"githubUrl":"https://github.com/unclecode/crawl4ai/blob/7e801521428ee12509994d39151006f64055ebe3/deploy/docker/c4ai-code-context.md#L997-L1033","documentation":"ValueError from CrawlerRunConfig.__init__: chunking_strategy was supplied but is not an instance of ChunkingStrategy (and not None). If None, RegexChunking() is installed as the default right after this check.","triggerScenarios":"CrawlerRunConfig(chunking_strategy='regex'), chunking_strategy=RegexChunking (class not instance), or a custom chunker not subclassing ChunkingStrategy.","commonSituations":"Setting chunking only because an LLM extraction strategy needs chunks, and passing the class by mistake; copying tutorial code that omitted parentheses; providing a plain function expecting it to be used as a chunker.","solutions":["Instantiate the strategy: chunking_strategy=RegexChunking() or NlpSentenceChunking()","Custom chunkers must subclass ChunkingStrategy and implement chunk()/__repr__","If unsure, omit the parameter - RegexChunking is the default"],"exampleFix":"# before\nconfig = CrawlerRunConfig(chunking_strategy=RegexChunking)\n\n# after\nfrom crawl4ai import RegexChunking\nconfig = CrawlerRunConfig(chunking_strategy=RegexChunking())","handlingStrategy":"type-guard","validationCode":"from crawl4ai.chunking_strategy import ChunkingStrategy\nassert chunking_strategy is None or isinstance(chunking_strategy, ChunkingStrategy), \"chunking_strategy must be a ChunkingStrategy instance\"","typeGuard":"from crawl4ai.chunking_strategy import ChunkingStrategy\n\ndef is_chunking_strategy(s) -> bool:\n    return s is None or isinstance(s, ChunkingStrategy)","tryCatchPattern":"try:\n    config = CrawlerRunConfig(chunking_strategy=chunker)\nexcept ValueError:\n    config = CrawlerRunConfig(chunking_strategy=RegexChunking())  # sane default","preventionTips":["Omit chunking_strategy unless you specifically need non-default chunk boundaries","Remember RegexChunking() is applied automatically when None"],"tags":["crawl4ai","config","validation","chunking"],"backgroundTag":null,"analyzedSha":"7e801521428ee12509994d39151006f64055ebe3","analyzedAt":"2026-08-14T20:46:20.673Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}