{"record":{"id":"1861511d1bda0865","repo":"langchain-ai/langchain","slug":"expected-package-version-to-be-gt-version-r","errorCode":null,"errorMessage":"Expected {package} version to be > {gt_version}. Received {imported_version}.","messagePattern":"Expected (.+?) version to be > (.+?)\\. Received (.+?)\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"libs/core/langchain_core/utils/utils.py","lineNumber":184,"sourceCode":"    imported_version = parse(version(package))\n    if lt_version is not None and imported_version >= parse(lt_version):\n        msg = (\n            f\"Expected {package} version to be < {lt_version}. Received \"\n            f\"{imported_version}.\"\n        )\n        raise ValueError(msg)\n    if lte_version is not None and imported_version > parse(lte_version):\n        msg = (\n            f\"Expected {package} version to be <= {lte_version}. Received \"\n            f\"{imported_version}.\"\n        )\n        raise ValueError(msg)\n    if gt_version is not None and imported_version <= parse(gt_version):\n        msg = (\n            f\"Expected {package} version to be > {gt_version}. Received \"\n            f\"{imported_version}.\"\n        )\n        raise ValueError(msg)\n    if gte_version is not None and imported_version < parse(gte_version):\n        msg = (\n            f\"Expected {package} version to be >= {gte_version}. Received \"\n            f\"{imported_version}.\"\n        )\n        raise ValueError(msg)\n\n\ndef get_pydantic_field_names(pydantic_cls: Any) -> set[str]:\n    \"\"\"Get field names, including aliases, for a pydantic class.\n\n    Args:\n        pydantic_cls: Pydantic class.\n\n    Returns:\n        Field names.\n    \"\"\"\n    all_required_field_names = set()","sourceCodeStart":166,"sourceCodeEnd":202,"githubUrl":"https://github.com/langchain-ai/langchain/blob/e32fa9a52eab3b61ad7a45399bfde59b3e580fc4/libs/core/langchain_core/utils/utils.py#L166-L202","documentation":"Raised by `check_package_version` in `langchain_core.utils.utils` for the strict lower bound: the installed `package` version is less than or equal to `gt_version` when the caller required strictly greater. Integrations use it to refuse old dependency versions missing features they rely on. The message contrasts the required minimum with the imported version.","triggerScenarios":"`check_package_version(pkg, gt_version=X)` executes where the installed version is X or older — e.g. an integration that needs `pydantic>=2` (gt `1.x`) or a provider SDK feature introduced after a given release, while the environment still has the old version cached/installed.","commonSituations":"Long-lived Docker images or_lambda environments with stale dependencies; installing LangChain's latest release into an environment pinned to old dependency majors; partial upgrades where the new integration landed but its dependency did not; system-package managers providing ancient versions.","solutions":["Upgrade the package past the boundary in the message: `pip install -U \"pkg>X\"` (use the exact minimum stated).","Better: upgrade via the integration's own requirements (`pip install -U langchain-<partner>`) so compatible bounds resolve together.","Rebuild cached Docker/CI images after upgrading; verify with `python -c \"import pkg; print(pkg.__version__)\"`."],"exampleFix":"# before\n# ValueError: Expected pydantic version to be > 1.10.13. Received 1.10.8.\n\n# after (terminal)\n# pip install \"pydantic>1.10.13\"  (or migrate to pydantic 2 with a v2-compatible release)","handlingStrategy":"validation","validationCode":"from packaging.version import Version\n\ndef version_gt(pkg: str, minimum: str) -> bool:\n    return Version(importlib.metadata.version(pkg)) > Version(minimum)\n\nif not version_gt(\"pydantic\", \"1.10.13\"):\n    raise RuntimeError(\"pydantic too old; upgrade it or use an older integration\")","typeGuard":null,"tryCatchPattern":"try:\n    check_package_version(pkg, gt_version=minimum)\nexcept ValueError as e:\n    raise RuntimeError(f\"dependency floor violated: {e}\") from e","preventionTips":["Rebuild Docker/CI images after dependency upgrades; cached layers keep stale versions.","When installing the newest LangChain release, let it pull its required dependency floors (uv sync with the lockfile).","Log installed dependency versions at startup for drift diagnosis."],"tags":["versioning","dependencies","environment"],"backgroundTag":null,"analyzedSha":"e32fa9a52eab3b61ad7a45399bfde59b3e580fc4","analyzedAt":"2026-08-14T18:42:09.092Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}