{"record":{"id":"c0577158d1a50cb0","repo":"microsoft/graphrag","slug":"column-name-is-none","errorCode":null,"errorMessage":"Column name is None","messagePattern":"Column name is None","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"packages/graphrag/graphrag/query/input/loaders/utils.py","lineNumber":27,"sourceCode":"import numpy as np\n\n\ndef _get_value(\n    data: Mapping[str, Any], column_name: str | None, required: bool = True\n) -> Any:\n    \"\"\"\n    Retrieve a column value from data.\n\n    If `required` is True, raises a ValueError when:\n      - column_name is None, or\n      - column_name is not in data.\n\n    For optional columns (required=False), returns None if column_name is None.\n    \"\"\"\n    if column_name is None:\n        if required:\n            msg = \"Column name is None\"\n            raise ValueError(msg)\n        return None\n    if column_name in data:\n        return data[column_name]\n    if required:\n        msg = f\"Column [{column_name}] not found in data\"\n        raise ValueError(msg)\n    return None\n\n\ndef to_str(data: Mapping[str, Any], column_name: str | None) -> str:\n    \"\"\"Convert and validate a value to a string.\"\"\"\n    value = _get_value(data, column_name, required=True)\n    return str(value)\n\n\ndef to_optional_str(data: Mapping[str, Any], column_name: str | None) -> str | None:\n    \"\"\"Convert and validate a value to an optional string.\"\"\"\n    value = _get_value(data, column_name, required=True)","sourceCodeStart":9,"sourceCodeEnd":45,"githubUrl":"https://github.com/microsoft/graphrag/blob/f40e9a26ce62ba0b3fef8837d24aafdcc6e6c704/packages/graphrag/graphrag/query/input/loaders/utils.py#L9-L45","documentation":"The query input loader helpers (to_str, to_list, to_int, etc.) fetch a required column value from a mapping; if the column name itself is None and required=True, there is nothing to look up, so _get_value raises 'Column name is None'. Optional loaders (to_optional_str, etc.) pass required=False and return None instead.","triggerScenarios":"Calling to_str(data, None) or to_int(data, None) — i.e. passing a None column name to a required-value helper; usually happens when the column name comes from config that is unset.","commonSituations":"Readiding indexer artifacts where the config field for a column name was never set (None defaults); refactors that changed a parameter to Optional without switching to to_optional_str.","solutions":["Find which config/parameter resolved to None and set the column name","If the column is genuinely optional, use the to_optional_* variant which tolerates None","Default the column name: to_str(data, col or 'text')"],"exampleFix":"# before\ntext = to_str(row, col_name)  # col_name is None\n# after\ntext = to_str(row, col_name or 'text')\n# or, if optional:\ntext = to_optional_str(row, col_name)","handlingStrategy":"validation","validationCode":"if col_name is None:\n    col_name = 'text'  # or reject early\nval = to_str(data, col_name)","typeGuard":"def has_column_name(c: object) -> bool:\n    return isinstance(c, str) and len(c) > 0","tryCatchPattern":null,"preventionTips":["Use to_optional_* helpers for genuinely optional fields","Never pass unvalidated config values as column names"],"tags":["graphrag","data-loading","validation","none-value"],"backgroundTag":"invalid-argument-value","analyzedSha":"f40e9a26ce62ba0b3fef8837d24aafdcc6e6c704","analyzedAt":"2026-08-27T11:16:29.677Z","schemaVersion":2},"datasetVersion":"2026-08-27T13:17:12.746Z"}