googleapis / googleapis/python-genai

v2.19.0 release notes advertise AudioTranscriptionConfig.mode, but the wheel rejects VERBATIM/SMART

Open
#2,892 1 comment 0 reactions 1 assignee Claimed by @Venkaiahbabuneelam View on GitHub
priority: p2 type: bug
Dominant language
Python
Stars
4k
Forks
1k
Avg merge
2d 11h
Merged PRs (30d)
40

Description

### Description

The v2.19.0 release notes advertise a new `mode` enum (`VERBATIM`, `SMART`) on `AudioTranscriptionConfig` and `TranscriptionConfig`:

https://github.com/googleapis/python-genai/releases/tag/v2.19.0

However, the published `google-genai==2.19.0` wheel does not contain `AudioTranscriptionConfigMode` or an `AudioTranscriptionConfig.mode` field. Passing the advertised field is rejected by Pydantic before a Live API connection can be established.

The source history also appears inconsistent:

- The field was added in https://github.com/googleapis/python-genai/commit/e8cd7d001438da2b580c0d65cc429111f1c38442
- It was removed before the release in https://github.com/googleapis/python-genai/commit/fedd121b35dfdb59aa0d808b6da358d194912a2c
- The release notes still list the addition, and the current `main` branch still lacks the field.

### Reproduction

```python
from google.genai import types

print("mode" in types.AudioTranscriptionConfig.model_fields)
types.AudioTranscriptionConfig(mode="SMART")
```

Output with the published v2.19.0 wheel:

```text
False
pydantic_core._pydantic_core.ValidationError: 1 validation error for AudioTranscriptionConfig
mode
Extra inputs are not permitted [type=extra_forbidden, input_value='SMART', input_type=str]
```

This also prevents downstream consumers that use the SDK types, including ADK's public Live configuration path, from passing the advertised option.

### Wire-level cross-check

I also tested the Gemini Developer API v1beta Live WebSocket setup directly with `gemini-3.1-flash-live-preview`, bypassing the SDK model validation:

| `inputAudioTranscription` | Server result |
| --- | --- |
| `{}` | `setupComplete` |
| `{"mode":"VERBATIM"}` | `setupComplete` |
| `{"mode":"SMART"}` | `setupComplete` |
| `{"mode":"DEFINITELY_INVALID"}` | WebSocket close `1007 Invalid value at 'setup.input_audio_transcription.mode'` |

This suggests that the backend schema recognizes the two enum values; they are not merely ignored as unknown fields. This report is only claiming setup/schema acceptance, not a particular transcription-quality difference between the modes.

### Expected behavior / questions

1. Was the removal before v2.19.0 intentional?
2. If the feature is supported, could `AudioTranscriptionConfig.mode` and its enum be restored in the published SDK types?
3. If it is intentionally unavailable, could the v2.19.0 release notes/changelog be corrected and the availability documented?

Either outcome would remove the current contradiction between the release notes, distributed wheel, and Live API wire schema.

### Environment

- `google-genai==2.19.0` (latest published version at time of report)
- Python 3.14.5
- macOS 26.5.2, arm64
- Live model used for the wire cross-check: `gemini-3.1-flash-live-preview`
- Developer API version: `v1beta`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.