apache/beam · warning
This version of Apache Beam has not been sufficiently…
Error message
This version of Apache Beam has not been sufficiently tested on Python %s.%s. You may encounter bugs or missing features.
What it means
Beam emits a warning at setup time when the running Python is 3.15 or newer, because that version has not been sufficiently tested with this Beam release (python_requires is >=3.10 and testing covers up to 3.14). The install proceeds but bugs or missing features are possible.
Solutions
- Use a supported Python version (>=3.10, <3.15), e.g. via pyenv, conda, or a pinned docker image like python:3.12.
- If you must use 3.15, expect the warning and test thoroughly; consider installing from source with recent dependencies.
- Pin CI images to a specific tested Python minor version instead of 'latest'.
Example fix
// before FROM python:latest # 3.15 -> warning // after FROM python:3.12-slim
Defensive patterns
Strategy: validation
Validate before calling
import sys
if sys.version_info >= (3, 15):
raise SystemExit('Use Python >=3.10,<3.15 (e.g. 3.12) for Apache Beam') Prevention
- Pin Python 3.10–3.14 in pyenv/.python-version, conda env, or CI matrix
- Avoid python:latest docker images; use a pinned tag like python:3.12-slim
- Check Beam's supported Python versions in release notes before upgrading Python
When it happens
Trigger: Running pip install / python setup.py for Beam with sys.version_info.minor >= 15 (e.g. Python 3.15 pre-releases or new releases).
Common situations: Developers on the latest Python (3.15 alpha/beta or just-released) trying to install Beam; CI matrices that use 'python:latest' docker images.
Understand the failure class
Background: "unsupported platform" / "not supported on this platform" errors: what they mean and how to fix them — this error's family across 47 libraries.
Related errors
- You are using version
- Cannot find default Beam SDK tar file
- Coder registry has no fallback coder. This can happen if…
- Pipeline option pickle_library=dill is set, but dill is not…
- Pipeline option pickle_library=dill_unsafe is set, but dill…
AI-assisted analysis of apache/beam@12126d8942 (2026-09-13).
Data as JSON: /api/errors/5d2784759ec02da6.
Report an issue: GitHub.
Appendix: source
Thrown at sdks/python/setup.py:341
'error: {}'.format(err.stderr))
def get_portability_package_data():
files = []
portability_dir = Path(__file__).parent / 'apache_beam' / \
'portability' / 'api'
for ext in ['*.pyi', '*.yaml']:
files.extend(
str(p.relative_to(portability_dir.parent.parent))
for p in portability_dir.rglob(ext))
return files
python_requires = '>=3.10'
if sys.version_info.major == 3 and sys.version_info.minor >= 15:
warnings.warn(
'This version of Apache Beam has not been sufficiently tested on '
'Python %s.%s. You may encounter bugs or missing features.' %
(sys.version_info.major, sys.version_info.minor))
if __name__ == '__main__':
# In order to find the tree of proto packages, the directory
# structure must exist before the call to setuptools.find_packages()
# executes below.
generate_protos_first()
generate_external_transform_wrappers()
# These data files live elsewhere in the full Beam repository.
copy_tests_from_docs()
# generate cythonize extensions only if we are building a wheel or
# building an extension or running in editable mode.
cythonize_cmds = ('bdist_wheel', 'build_ext', 'editable_wheel')View on GitHub (pinned to 12126d8942)