{"record":{"id":"bcf522e4451eeecf","repo":"pola-rs/polars","slug":"reading-delta-deletion-vectors-requires-deltalake","errorCode":null,"errorMessage":"reading delta deletion vectors requires deltalake >= {'.'.join(str(v) for v in dv_min_version)}, found {installed}.","messagePattern":"reading delta deletion vectors requires deltalake >= (.+?), found (.+?)\\.","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"error","filePath":"py-polars/src/polars/io/delta/_dataset.py","lineNumber":193,"sourceCode":"\n        reader_features = table.protocol().reader_features\n        has_deletion_vectors = (\n            reader_features is not None and \"deletionVectors\" in reader_features\n        )\n\n        deletion_files: DeletionFiles | None = None\n        if has_deletion_vectors:\n            import deltalake\n\n            dv_min_version = (1, 4, 2)\n            installed = parse_version(deltalake.__version__)\n            if installed < dv_min_version:\n                msg = (\n                    f\"reading delta deletion vectors requires \"\n                    f\"deltalake >= {'.'.join(str(v) for v in dv_min_version)}, \"\n                    f\"found {installed}.\"\n                )\n                raise ImportError(msg)\n\n            def _deletion_vector_callback(\n                requested_paths: pl.DataFrame,\n            ) -> pl.DataFrame:\n                delta_deletion_vectors = _fetch_deletion_vectors(table)\n                if delta_deletion_vectors is None:\n                    return pl.DataFrame(\n                        {\"selection_vector\": [None] * len(requested_paths)},\n                        schema={\"selection_vector\": pl.List(pl.Boolean)},\n                    )\n                return _extract_delta_deletion_vectors(\n                    requested_paths, delta_deletion_vectors\n                )\n\n            deletion_files = (\n                \"delta-deletion-vector\",\n                _deletion_vector_callback,\n            )","sourceCodeStart":175,"sourceCodeEnd":211,"githubUrl":"https://github.com/pola-rs/polars/blob/5d8ebabf11caea54a5c29178a64a058762f49766/py-polars/src/polars/io/delta/_dataset.py#L175-L211","documentation":"Raised by the Delta Lake scanner when the table's protocol advertises deletion vectors but the installed deltalake package (>= 1.4.2 required) is too old to read them. Upgrade the deltalake package to read this table.","triggerScenarios":"Thrown at py-polars/src/polars/io/delta/_dataset.py:195 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Upgrade deltalake to at least the version that supports deletion vectors, as printed in the error message."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5d8ebabf11caea54a5c29178a64a058762f49766","analyzedAt":"2026-08-19T12:15:06.350Z","contentChangedAt":"2026-08-19T12:15:06.350Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}