{"record":{"id":"b8fb412dcf0353a5","repo":"microsoft/qlib","slug":"self-class-name-does-not-support-inst-pr-b8fb41","errorCode":null,"errorMessage":"{self.__class__.__name__} does not support inst_processor. Please use `D.features(disk_cache=0)` or `qlib.init(dataset_cache=None)`","messagePattern":"(.+?) does not support inst_processor\\. Please use `D\\.features\\(disk_cache=0\\)` or `qlib\\.init\\(dataset_cache=None\\)`","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"qlib/data/data.py","lineNumber":1107,"sourceCode":"                start_time = cal[0]\n                end_time = cal[-1]\n\n                data = self.dataset_processor(instruments_d, column_names, start_time, end_time, freq, inst_processors)\n                if return_uri:\n                    return data, feature_uri\n                else:\n                    return data\n        else:\n            \"\"\"\n            Call the server to generate the data-set cache, get the uri of the cache file.\n            Then load the data from the file on NFS directly.\n            - using single-process implementation.\n\n            \"\"\"\n            # TODO: support inst_processors, need to change the code of qlib-server at the same time\n            # FIXME: The cache after resample, when read again and intercepted with end_time, results in incomplete data date\n            if inst_processors:\n                raise ValueError(\n                    f\"{self.__class__.__name__} does not support inst_processor. \"\n                    f\"Please use `D.features(disk_cache=0)` or `qlib.init(dataset_cache=None)`\"\n                )\n            self.conn.send_request(\n                request_type=\"feature\",\n                request_content={\n                    \"instruments\": instruments,\n                    \"fields\": fields,\n                    \"start_time\": start_time,\n                    \"end_time\": end_time,\n                    \"freq\": freq,\n                    \"disk_cache\": 1,\n                },\n                msg_queue=self.queue,\n            )\n            # - Done in callback\n            feature_uri = self.queue.get(timeout=C[\"timeout\"])\n            if isinstance(feature_uri, Exception):","sourceCodeStart":1089,"sourceCodeEnd":1125,"githubUrl":"https://github.com/microsoft/qlib/blob/79633dd9506ea689e5400dea0197717b5b3d74b7/qlib/data/data.py#L1089-L1125","documentation":"When qlib runs against a remote backend (`ClientProvider`), `D.features` with disk_cache asks qlib-server to generate a dataset cache and reads the resulting file over NFS. That code path has no support for `inst_processors`, so passing any raises ValueError with two workarounds in the message.","triggerScenarios":"Using `qlib.init(...)` against a qlib-server backend (client mode) and calling `D.features(..., inst_processors=[SomeProcessor()])` with the default disk_cache=1.","commonSituations":"Mixed setups where a notebook points at remote data but workflow code written for local providers uses inst_processors (e.g. price adjustment processors like AdjustProcessor).","solutions":["Call `D.features(..., disk_cache=0)` to bypass the server dataset-cache path (data streamed instead).","Or re-init with `qlib.init(..., dataset_cache=None)` to disable dataset caching globally.","Or switch to a local provider_uri so the local provider (which supports inst_processors) is used."],"exampleFix":"# before\ndf = D.features(insts, fields, start, end, inst_processors=[proc])\n\n# after\ndf = D.features(insts, fields, start, end, inst_processors=[proc], disk_cache=0)","handlingStrategy":"validation","validationCode":"from qlib.config import C\n\ndef server_cache_mode_conflicts(inst_processors) -> bool:\n    return bool(inst_processors) and C.get('provider') not in (None, 'local')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["When using qlib-server, always pass disk_cache=0 if inst_processors are needed.","Set dataset_cache=None in qlib.init for workflows that rely on inst_processors."],"tags":["client-server","cache","processors"],"backgroundTag":null,"analyzedSha":"79633dd9506ea689e5400dea0197717b5b3d74b7","analyzedAt":"2026-08-15T07:01:27.511Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}