microsoft/autogen · error · ValueError
Failed to get list of available packages: {ret.output.strip(
Error message
Failed to get list of available packages: {ret.output.strip()} What it means
AzureContainerCodeExecutor.get_available_packages() runs `import pkg_resources; [d.project_name for d in pkg_resources.working_set]` inside the ACA container to enumerate installed packages; if that probe exits non-zero, the captured stdout/stderr is wrapped in ValueError. The executor container is therefore up but the Python probe failed — commonly pkg_resources (setuptools) missing in the image, an OOM/killed probe, or the container image lacking the expected Python environment.
Source
Thrown at python/packages/autogen-ext/src/autogen_ext/code_executors/azure/_azure_container_code_executor.py:225
def _construct_url(self, path: str) -> str:
endpoint = self._pool_management_endpoint
if not endpoint.endswith("/"):
endpoint += "/"
url = endpoint + f"{path}?api-version={self._AZURE_API_VER}&identifier={self._session_id}"
return url
async def get_available_packages(self, cancellation_token: CancellationToken) -> set[str]:
if self._available_packages is not None:
return self._available_packages
avail_pkgs = """
import pkg_resources\n[d.project_name for d in pkg_resources.working_set]
"""
ret = await self._execute_code_dont_check_setup(
[CodeBlock(code=avail_pkgs, language="python")], cancellation_token
)
if ret.exit_code != 0:
raise ValueError(f"Failed to get list of available packages: {ret.output.strip()}")
pkgs = ret.output.strip("[]")
pkglist = pkgs.split(",\n")
return {pkg.strip(" '") for pkg in pkglist}
async def _populate_available_packages(self, cancellation_token: CancellationToken) -> None:
self._available_packages = await self.get_available_packages(cancellation_token)
async def _setup_functions(self, cancellation_token: CancellationToken) -> None:
if not self._func_code:
self._func_code = build_python_functions_file(self._functions)
# Check required function imports and packages
lists_of_packages = [x.python_packages for x in self._functions if isinstance(x, FunctionWithRequirements)]
# Should we also be checking the imports?
flattened_packages = [item for sublist in lists_of_packages for item in sublist]
required_packages = set(flattened_packages)
View on GitHub (pinned to 027ecf0a37)
Solutions
- Ensure setuptools is installed in the execution container image (RUN pip install setuptools)
- Use the default autogen-created container image, which includes pkg_resources
- Inspect ret.output in the exception to see the in-container traceback and fix the image accordingly
- Recreate the container pool if the image was updated but the pool still runs the old one
Example fix
# before (Dockerfile for custom execution image) FROM python:3.12-slim RUN pip install numpy pandas # probe fails: no pkg_resources # after FROM python:3.12-slim RUN pip install setuptools numpy pandas
Defensive patterns
Strategy: try-catch
Validate before calling
# no in-container probe can be run from the caller; validate the image instead at build time
# docker run --rm my-exec-image python -c "import pkg_resources; print('ok')" Try / catch
try:
await executor.execute_code(blocks, token)
except ValueError as e:
if 'Failed to get list of available packages' in str(e):
raise RuntimeError('execution image lacks setuptools/pkg_resources; rebuild image') from e
raise Prevention
- Include setuptools in any custom execution container image
- Add a CI step that runs the pkg_resources probe inside the image
- Recreate the container pool whenever the image changes
When it happens
Trigger: The first function-execution call triggers _populate_available_packages -> get_available_packages; the in-container python process exits non-zero, e.g. ModuleNotFoundError: No module named 'pkg_resources' on images without setuptools, or a container that crashed mid-probe.
Common situations: Custom container images based on slim/python:3.12+ where setuptools is absent, images where the default ENTRYPOINT interferes, resource limits killing the job, or a stale pool whose image was rebuilt without build tools.
Related errors
- Powershell or pwsh is not installed. Please install one of t
- Packages unavailable in environment: {missing_pkgs}
- Could not create spec
- Could not create loader
- Timeout must be greater than or equal to 1.
AI-assisted analysis of microsoft/autogen@027ecf0a37 (2026-08-15).
Data as JSON: /api/errors/fde37c17e6054d63.
Report an issue: GitHub.