{"record":{"id":"8202695f4ddef206","repo":"PyO3/pyo3","slug":"the-configured-pypy-interpreter-version-is-lo","errorCode":null,"errorMessage":"the configured PyPy interpreter version ({}) is lower than PyO3's minimum supported version ({})","messagePattern":"the configured PyPy interpreter version \\((.+?)\\) is lower than PyO3's minimum supported version \\((.+?)\\)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pyo3-ffi/build.rs","lineNumber":118,"sourceCode":"                        .is_none_or(|os_str| os_str != \"1\")\n                {\n                    error.add_help(\"set PYO3_USE_STABLE_ABI_FORWARD_COMPATIBILITY=1 to suppress this check and build anyway using the stable ABI\");\n                    return Err(error.finish().into());\n                }\n            }\n\n            if interpreter_config.target_abi().kind().is_free_threaded() {\n                ensure!(\n                    interpreter_config.target_abi().version() >= MIN_FREE_THREADED_VERSION,\n                    \"PyO3 does not support the free-threaded build of CPython versions below {}, the selected Python version is {}\",\n                    MIN_FREE_THREADED_VERSION,\n                    interpreter_config.target_abi().version(),\n                );\n            }\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,","sourceCodeStart":100,"sourceCodeEnd":136,"githubUrl":"https://github.com/PyO3/pyo3/blob/ac9b6899d348be4d54614d060dea53a645a12e36/pyo3-ffi/build.rs#L100-L136","documentation":"Version check failure in pyo3-ffi's build script (ensure_python_version): the configured PyPy interpreter reports a version below the minimum PyPy version supported by this PyO3 release. The detected config's version tuple fails the lower-bound ensure, aborting the ffi build with a formatted message carrying both versions.","triggerScenarios":"Building with PYO3_PYTHON (or auto-detection) pointing at a PyPy interpreter older than the minimum version supported by this PyO3 release.","commonSituations":"Old PyPy 3.8/3.9 installations; CI runners with stale PyPy; switching from CPython to PyPy without checking PyO3's compatibility table.","solutions":["Install a newer PyPy (matching the versions in PyO3's SUPPORTED_VERSIONS_PYPY) and set PYO3_PYTHON to it","Verify with pypy3 --version","Downgrade pyo3 if you must keep the old PyPy","Switch back to CPython if PyPy support is not required"],"exampleFix":"// before\nPYO3_PYTHON=/opt/pypy3.9/bin/pypy3 cargo build\n// after\nPYO3_PYTHON=/opt/pypy3.11/bin/pypy3 cargo build","handlingStrategy":"validation","validationCode":"import sys\nif sys.implementation.name == \"pypy\":\n    v = sys.pypy_version_info[:2]\n    assert v >= (3, 10), f\"PyPy {v} too old for this pyo3\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Consult PyO3's supported PyPy versions before choosing a PyPy base image","Pin PyPy versions in CI setup steps","Test PyPy builds in a separate CI job so failures are isolated"],"tags":["rust","pypy","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"}