{"record":{"id":"873f48047cc6ee8a","repo":"PyO3/pyo3","slug":"the-configured-graalpy-interpreter-version-is","errorCode":null,"errorMessage":"the configured GraalPy interpreter version ({}) is lower than PyO3's minimum supported version ({})","messagePattern":"the configured GraalPy interpreter version \\((.+?)\\) is lower than PyO3's minimum supported version \\((.+?)\\)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pyo3-ffi/build.rs","lineNumber":132,"sourceCode":"            }\n        }\n        PythonImplementation::PyPy => {\n            let versions = SUPPORTED_VERSIONS_PYPY;\n            ensure!(\n                interpreter_config.target_abi().version() >= versions.min,\n                \"the configured PyPy interpreter version ({}) is lower than PyO3's minimum supported version ({})\",\n                interpreter_config.target_abi().version(),\n                versions.min,\n            );\n            // PyO3 does not support abi3, so we cannot offer forward compatibility\n            if interpreter_config.target_abi().version() > versions.max {\n                let error = MaximumVersionExceeded::new(interpreter_config, versions.max);\n                return Err(error.finish().into());\n            }\n        }\n        PythonImplementation::GraalPy => {\n            let versions = SUPPORTED_VERSIONS_GRAALPY;\n            ensure!(\n                interpreter_config.target_abi().version() >= versions.min,\n                \"the configured GraalPy interpreter version ({}) is lower than PyO3's minimum supported version ({})\",\n                interpreter_config.target_abi().version(),\n                versions.min,\n            );\n            // GraalPy does not support abi3, so we cannot offer forward compatibility\n            if interpreter_config.target_abi().version() > versions.max {\n                let error = MaximumVersionExceeded::new(interpreter_config, versions.max);\n                return Err(error.finish().into());\n            }\n        }\n        PythonImplementation::RustPython => {}\n    }\n\n    if let PythonAbiKind::Stable(abi) = interpreter_config.target_abi().kind() {\n        match interpreter_config.target_abi().implementation() {\n            PythonImplementation::CPython => match abi {\n                StableAbi::Abi3t => {","sourceCodeStart":114,"sourceCodeEnd":150,"githubUrl":"https://github.com/PyO3/pyo3/blob/ac9b6899d348be4d54614d060dea53a645a12e36/pyo3-ffi/build.rs#L114-L150","documentation":"pyo3-ffi's build script enforces a minimum supported GraalPy version. If the configured interpreter is GraalPy and its version is below SUPPORTED_VERSIONS_GRAALPY.min, the build fails during configuration.","triggerScenarios":"Building with the interpreter resolved as GraalPy whose version is below the minimum in SUPPORTED_VERSIONS_GRAALPY for this PyO3 release.","commonSituations":"Older GraalPy releases (e.g. 23.x) used with a recent pyo3; CI images bundling outdated GraalVM; experimenting with GraalPy's Python compatibility layer.","solutions":["Upgrade GraalPy/GraalVM to a version in PyO3's supported range and set PYO3_PYTHON to it","Check the version with graalpy --version","Downgrade pyo3 if pinned to an older GraalPy","Use CPython instead if GraalPy support is not a requirement"],"exampleFix":"// before\nPYO3_PYTHON=/opt/graalpy-23.0/bin/graalpy cargo build\n// after\nPYO3_PYTHON=/opt/graalpy-24.1/bin/graalpy cargo build","handlingStrategy":"validation","validationCode":"import sys\nif sys.implementation.name == \"graalpy\":\n    # ensure GraalPy release is in pyo3's SUPPORTED_VERSIONS_GRAALPY range\n    assert sys.version_info[:2] >= (3, 10), \"GraalPy too old for this pyo3\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use recent GraalVM/GraalPy releases with pyo3 support","Pin the GraalPy version in Docker images and CI","Check pyo3's changelog for GraalPy compatibility notes"],"tags":["rust","graalpy","version-compatibility","build"],"backgroundTag":"unsupported-python-version","analyzedSha":"ac9b6899d348be4d54614d060dea53a645a12e36","analyzedAt":"2026-09-05T09:20:35.319Z","contentChangedAt":"2026-09-05T09:20:35.319Z","schemaVersion":2},"datasetVersion":"2026-09-12T12:17:11.808Z"}