← All tasks
pythonmistralai/client-python #341Not a task: not reproduced

[BUG CLIENT]: `opentelemetry-semantic-conventions` upper bound `<0.60` blocks compatibility with `opentelemetry-api>=1.39.0`

envgap__mistralai__client-python-341

01 / FAILURE SIGNATURE

As reported upstream

No identifying execution failure has been captured.
Not a benchmark task.
  • In a clean container the reported failure did not reproduce, or the known fix did not make the project run.

02 / ENVIRONMENT RECIPE

Base commit
6475b1caefd308c35e48d469a4bc9a314a81a10a
Manifest
pyproject.toml
Reproduce
Awaiting issue-specific recipe
Run under trace
Awaiting a meaningful runtime command

03 / ORIGINAL ISSUE TEXT

mistralai/client-python #341 · read the original issue
### Python -VV

```shell
Python 3.11.12 | packaged by conda-forge | (main, Apr 10 2025, 22:18:52) [Clang 18.1.8 ]
```

### Pip Freeze

```shell
mistralai==1.12.0
opentelemetry-api==1.39.1
opentelemetry-exporter-otlp-proto-http==1.39.1
opentelemetry-sdk==1.39.1
opentelemetry-semantic-conventions==0.60b1
```

### Reproduction Steps

1. Create a project that depends on both `mistralai[realtime]>=1.12.0` and any package requiring `opentelemetry-api>=1.39.0` (e.g. `livekit-agents>=1.3.6`).
2. Run `pip install` or `uv sync`.
3. Resolution fails with a dependency conflict:

```
× No solution found when resolving dependencies:
╰─▶ Because opentelemetry-semantic-conventions==0.59b0 depends on
    opentelemetry-api==1.38.0 and only the following versions of
    opentelemetry-semantic-conventions are available:
        opentelemetry-semantic-conventions<=0.59b0
        opentelemetry-semantic-conventions>0.60
    we can conclude that opentelemetry-semantic-conventions>=0.59b0,<0.60
    depends on opentelemetry-api==1.38.0.
    And because mistralai==1.12.0 depends on
    opentelemetry-semantic-conventions>=0.59b0,<0.60 and only
    mistralai[realtime]<=1.12.0 is available, we can conclude that
    mistralai[realtime]>=1.12.0 depends on opentelemetry-api==1.38.0.
```

Root cause in `pyproject.toml`:

```toml
"opentelemetry-semantic-conventions (>=0.59b0,<0.60)",
```

`<0.60` excludes pre-releases `0.60b0` and `0.60b1`, leaving `0.59b0` as the only match. That version pins `opentelemetry-api==1.38.0`, so anything needing `>=1.39.0` hits an unresolvable conflict.

### Expected Behavior

`mistralai[realtime]>=1.12.0` should install alongside packages requiring `opentelemetry-api>=1.39.0`. OpenTelemetry packages release in lockstep; `opentelemetry-semantic-conventions==0.60b1` requires `opentelemetry-api==1.39.1`.

### Additional Context

CI failure from `livekit/agents`: https://github.com/livekit/agents/actions/runs/21839471789/job/63019576507?pr=4773#step:5:13

Semantic-conventions versions and their pinned API versions:

| `opentelemetry-semantic-conventions` | Pins `opentelemetry-api` to |
|---|---|
| `0.59b0` | `1.38.0` |
| `0.60b0` | `1.39.0` |
| `0.60b1` | `1.39.1` |

`mistralai`'s other otel deps already allow 1.39.x:
- `opentelemetry-sdk (>=1.33.1,<2.0.0)`
- `opentelemetry-api (>=1.33.1,<2.0.0)`
- `opentelemetry-exporter-otlp-proto-http (>=1.37.0,<2.0.0)`

Only `opentelemetry-semantic-conventions (>=0.59b0,<0.60)` is the bottleneck.

### Suggested Solutions

Widen the upper bound in `pyproject.toml`:

```diff
-    "opentelemetry-semantic-conventions (>=0.59b0,<0.60)",
+    "opentelemetry-semantic-conventions (>=0.59b0,<0.61)",
```

Lets the resolver pick `0.60b1` (requires `opentelemetry-api==1.39.1`), fixing the conflict while staying within the SDK's existing `opentelemetry-api (>=1.33.1,<2.0.0)` bound.
Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]