Skip to content

[BUG] AWS Lambda: package conflicts on install of strands-agents and strands-agents-tools when building a Lambda layer on MacOS #88

Closed
@didier-durand

Description

@didier-durand

Checks

  • I have updated to the lastest minor and patch version of Strands
  • I have checked the documentation and this is not expected behavior
  • I have searched ./issues and there are no duplicates of my issue

Strands Version

0.1.3 for strands-agents & 0.1.2 for strands-agents-tools

Python Version

3.13

Operating System

MacOS Sequoia 15.5

Installation Method

pip

Steps to Reproduce

Run the following command:

pip3.13 install --no-cache --platform manylinux2014_x86_64 --target /tmp/strands-layer/python/lib/python3.13/site-packages --implementation cp --python-version 3.13 --only-binary=:all: --upgrade strands-agents strands-agents-tools

This command is preparing a Linux layer for AWS Lambda from MacOS. Hence the options for cross-build in the pip command.

This command is fully self-container: it should be able to run this command on another Mac and get same results

Expected Behavior

Given the fact that we do not impose any version on the 2 Strands packages, we would expect pip install to complete successfully. But it generates errors: see below.

We use the same kind of pip command for cross-build on other projects and it works. We'd expect the same here.

Actual Behavior

ERROR:

pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
traceloop-sdk 0.40.7 requires posthog<4,>3.0.2, but you have posthog 4.1.0 which is incompatible.
uptrace 1.31.0 requires opentelemetry-api~=1.31.0, but you have opentelemetry-api 1.33.1 which is incompatible.
uptrace 1.31.0 requires opentelemetry-sdk~=1.31.0, but you have opentelemetry-sdk 1.33.1 which is incompatible.
opentelemetry-instrumentation-urllib3 0.52b1 requires opentelemetry-semantic-conventions==0.52b1, but you have opentelemetry-semantic-conventions 0.54b1 which is incompatible.
opentelemetry-instrumentation-requests 0.52b1 requires opentelemetry-semantic-conventions==0.52b1, but you have opentelemetry-semantic-conventions 0.54b1 which is incompatible.
chainlit 2.5.5 requires python-multipart<0.0.19,>=0.0.18, but you have python-multipart 0.0.20 which is incompatible.
chainlit 2.5.5 requires starlette<0.42.0,>=0.41.2, but you have starlette 0.46.2 which is incompatible.
opentelemetry-exporter-otlp 1.31.1 requires opentelemetry-exporter-otlp-proto-http==1.31.1, but you have opentelemetry-exporter-otlp-proto-http 1.33.1 which is incompatible.
opentelemetry-instrumentation 0.52b1 requires opentelemetry-semantic-conventions==0.52b1, but you have opentelemetry-semantic-conventions 0.54b1 which is incompatible.
opentelemetry-instrumentation-sqlalchemy 0.52b1 requires opentelemetry-semantic-conventions==0.52b1, but you have opentelemetry-semantic-conventions 0.54b1 which is incompatible.
opentelemetry-exporter-otlp-proto-grpc 1.31.1 requires opentelemetry-exporter-otlp-proto-common==1.31.1, but you have opentelemetry-exporter-otlp-proto-common 1.33.1 which is incompatible.
opentelemetry-exporter-otlp-proto-grpc 1.31.1 requires opentelemetry-proto==1.31.1, but you have opentelemetry-proto 1.33.1 which is incompatible.
opentelemetry-exporter-otlp-proto-grpc 1.31.1 requires opentelemetry-sdk~=1.31.1, but you have opentelemetry-sdk 1.33.1 which is incompatible.


Successfully installed Events-0.5 annotated-types-0.7.0 anyio-4.9.0 aws-requests-auth-0.4.3 backoff-2.2.1 boto3-1.38.22 botocore-1.38.22 certifi-2025.4.26 charset-normalizer-3.4.2 click-8.2.1 colorama-0.4.6 deprecated-1.2.18 dill-0.4.0 distro-1.9.0 docstring-parser-0.15 googleapis-common-protos-1.70.0 greenlet-3.2.2 grpcio-1.71.0 h11-0.16.0 h2-4.2.0 hpack-4.1.0 httpcore-1.0.9 httpx-0.28.1 httpx-sse-0.4.0 hyperframe-6.1.0 idna-3.10 importlib-metadata-8.6.1 jiter-0.10.0 jmespath-1.0.1 markdown-it-py-3.0.0 mcp-1.9.1 mdurl-0.1.2 mem0ai-0.1.101 mpmath-1.3.0 numpy-2.2.6 openai-1.82.0 opensearch-py-2.8.0 opentelemetry-api-1.33.1 opentelemetry-exporter-otlp-proto-common-1.33.1 opentelemetry-exporter-otlp-proto-http-1.33.1 opentelemetry-proto-1.33.1 opentelemetry-sdk-1.33.1 opentelemetry-semantic-conventions-0.54b1 pillow-11.2.1 portalocker-2.10.1 posthog-4.1.0 prompt-toolkit-3.0.51 protobuf-5.29.4 pydantic-2.11.5 pydantic-core-2.33.2 pydantic-settings-2.9.1 pygments-2.19.1 pyjwt-2.10.1 python-dateutil-2.9.0.post0 python-dotenv-1.1.0 python-multipart-0.0.20 pytz-2025.2 qdrant-client-1.14.2 requests-2.32.3 rich-14.0.0 s3transfer-0.13.0 six-1.17.0 slack-bolt-1.23.0 slack_sdk-3.35.0 sniffio-1.3.1 sqlalchemy-2.0.41 sse-starlette-2.3.5 starlette-0.46.2 strands-agents-0.1.3 strands-agents-tools-0.1.2 sympy-1.14.0 tenacity-9.1.2 tqdm-4.67.1 typing-extensions-4.13.2 typing-inspection-0.4.1 urllib3-2.4.0 uvicorn-0.34.2 watchdog-6.0.0 wcwidth-0.2.13 wrapt-1.17.2 zipp-3.21.0


Additional Context

No response

Possible Solution

No response

Related Issues

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions