crewai - 💡(How to fix) Fix [BUG] crewai[litellm]==1.14.6 is unsatisfiable due to litellm<1.84 bound

Official PRs (…)
ON THIS PAGE

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

crewai[litellm]==1.14.6 appears to be unsatisfiable in a clean environment because the litellm extra is pinned to litellm>=1.83.7,<1.84, while CrewAI itself requires newer openai and python-dotenv versions.

The current extra selects only LiteLLM versions whose transitive pins conflict with CrewAI's dependency set:

  • litellm==1.83.7 pins python-dotenv==1.0.1
  • litellm==1.83.8 pins openai==2.24.0 and python-dotenv==1.0.1
  • litellm==1.83.14 pins openai==2.24.0

CrewAI requires:

openai>=2.30.0,<3
python-dotenv>=1.2.2,<2

This makes pip install "crewai[litellm]==1.14.6" fail resolution.

litellm==1.84.0 appears to relax the transitive pins to compatible bounds:

openai>=2.20.0,<3.0.0
python-dotenv>=1.0.0,<2.0

Root Cause

crewai[litellm]==1.14.6 appears to be unsatisfiable in a clean environment because the litellm extra is pinned to litellm>=1.83.7,<1.84, while CrewAI itself requires newer openai and python-dotenv versions.

Fix Action

Fix / Workaround

I tested CrewAI's LiteLLM fallback path locally against litellm==1.84.0 and litellm==1.88.x by monkeypatching litellm.completion / litellm.acompletion to return real LiteLLM ModelResponse / ModelResponseStream objects. Sync, async, streaming, and async-streaming fallback smoke tests passed.

Code Example

openai>=2.30.0,<3
python-dotenv>=1.2.2,<2

---

openai>=2.20.0,<3.0.0
python-dotenv>=1.0.0,<2.0

---

python -m venv /tmp/crewai-litellm-repro
source /tmp/crewai-litellm-repro/bin/activate
python -m pip install --upgrade pip
python -m pip install "crewai[litellm]==1.14.6"

---

uv --no-config pip install --python /tmp/crewai-litellm-repro/bin/python "crewai[litellm]==1.14.6"

---

litellm = [
    "litellm>=1.83.7,<1.84",
]

---

crewai==1.14.6:
  openai>=2.30.0,<3
  python-dotenv>=1.2.2,<2
  litellm>=1.83.7,<1.84; extra == "litellm"

litellm==1.83.7:
  openai==2.30.0
  python-dotenv==1.0.1

litellm==1.83.8:
  openai==2.24.0
  python-dotenv==1.0.1

litellm==1.83.14:
  openai==2.24.0
  python-dotenv==1.2.2

litellm==1.84.0:
  openai>=2.20.0,<3.0.0
  python-dotenv>=1.0.0,<2.0

---

litellm = [
    "litellm>=1.84.0,<2",
]

---

uv lock --check
pytest -q -o addopts='' lib/crewai/tests/test_optional_dependencies.py
fresh editable install of lib/crewai[litellm]
uv pip check
LiteLLM fallback smoke test

---

litellm==1.88.1
openai==2.41.0
python-dotenv==1.2.2
RAW_BUFFERClick to expand / collapse

Description

crewai[litellm]==1.14.6 appears to be unsatisfiable in a clean environment because the litellm extra is pinned to litellm>=1.83.7,<1.84, while CrewAI itself requires newer openai and python-dotenv versions.

The current extra selects only LiteLLM versions whose transitive pins conflict with CrewAI's dependency set:

  • litellm==1.83.7 pins python-dotenv==1.0.1
  • litellm==1.83.8 pins openai==2.24.0 and python-dotenv==1.0.1
  • litellm==1.83.14 pins openai==2.24.0

CrewAI requires:

openai>=2.30.0,<3
python-dotenv>=1.2.2,<2

This makes pip install "crewai[litellm]==1.14.6" fail resolution.

litellm==1.84.0 appears to relax the transitive pins to compatible bounds:

openai>=2.20.0,<3.0.0
python-dotenv>=1.0.0,<2.0

Steps to Reproduce

python -m venv /tmp/crewai-litellm-repro
source /tmp/crewai-litellm-repro/bin/activate
python -m pip install --upgrade pip
python -m pip install "crewai[litellm]==1.14.6"

I also reproduced the conflict with uv:

uv --no-config pip install --python /tmp/crewai-litellm-repro/bin/python "crewai[litellm]==1.14.6"

Expected behavior

crewai[litellm]==1.14.6 should resolve and install in a clean environment.

Screenshots/Code snippets

The relevant optional dependency in lib/crewai/pyproject.toml currently appears to be:

litellm = [
    "litellm>=1.83.7,<1.84",
]

Operating System

Other: dependency-resolution issue reproduced in clean virtual environments.

Python Version

3.12

crewAI Version

1.14.6

crewAI Tools Version

Not installed; this repro only uses crewai[litellm].

Virtual Environment

Venv

Evidence

Fresh install fails with a resolver conflict. The conflict matrix I observed is:

crewai==1.14.6:
  openai>=2.30.0,<3
  python-dotenv>=1.2.2,<2
  litellm>=1.83.7,<1.84; extra == "litellm"

litellm==1.83.7:
  openai==2.30.0
  python-dotenv==1.0.1

litellm==1.83.8:
  openai==2.24.0
  python-dotenv==1.0.1

litellm==1.83.14:
  openai==2.24.0
  python-dotenv==1.2.2

litellm==1.84.0:
  openai>=2.20.0,<3.0.0
  python-dotenv>=1.0.0,<2.0

I tested CrewAI's LiteLLM fallback path locally against litellm==1.84.0 and litellm==1.88.x by monkeypatching litellm.completion / litellm.acompletion to return real LiteLLM ModelResponse / ModelResponseStream objects. Sync, async, streaming, and async-streaming fallback smoke tests passed.

Possible Solution

Relax the LiteLLM extra to allow versions with compatible transitive dependency bounds, for example:

litellm = [
    "litellm>=1.84.0,<2",
]

I tested this locally on current main and verified:

uv lock --check
pytest -q -o addopts='' lib/crewai/tests/test_optional_dependencies.py
fresh editable install of lib/crewai[litellm]
uv pip check
LiteLLM fallback smoke test

The fresh install selected:

litellm==1.88.1
openai==2.41.0
python-dotenv==1.2.2

Additional context

This is not intended as a private vulnerability disclosure. It is a public packaging/dependency-resolution issue: the current crewai[litellm] extra is not installable with CrewAI's own dependency bounds, and the selected LiteLLM range also prevents consumers from getting LiteLLM versions with newer dependency metadata.

This issue was written with AI assistance, so I am applying the repository-required llm-generated label.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

crewai[litellm]==1.14.6 should resolve and install in a clean environment.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING