-
Notifications
You must be signed in to change notification settings - Fork 9
Description
Description
When creating a PipecatClient with enableMic: false, the microphone device still starts (the OS mic indicator appears and the device requests/uses mic access). The expectation is that the mic hardware should not be activated at all until enableMic(true) is explicitly called.
Steps to Reproduce
- Create a
PipecatClientwithenableMic: false:
import { PipecatClient } from "@pipecat-ai/client-js"
import { RNDailyTransport } from "@pipecat-ai/react-native-daily-transport"
const transport = new RNDailyTransport()
const client = new PipecatClient({
transport,
enableMic: false,
enableCam: false,
callbacks: { /* ... */ },
})
await client.startBotAndConnect({
endpoint: "https://example.com/connect",
requestData: { /* ... */ },
})- Observe that the OS microphone indicator activates immediately on connection, even though
enableMicisfalse.
Expected Behavior
When enableMic: false is passed to PipecatClient, the microphone device should not be started or accessed. The mic should only activate when client.enableMic(true) is called later.
Actual Behavior
The microphone device starts regardless of the enableMic: false setting. The OS mic indicator (iOS orange dot / Android status bar icon) appears as soon as the connection is established.
Environment
@pipecat-ai/client-js: latest@pipecat-ai/react-native-daily-transport: latest- React Native with Expo
- Tested on: iOS 26 (device)
Context
Our app starts sessions in text-only mode and only enables the mic when the user explicitly switches to voice mode (via client.enableMic(true)). Because of this bug, users see the mic indicator immediately on session start — which is both confusing and a privacy concern, since they haven't opted into voice yet.