Skip to content

enableMic: false still activates the microphone device on iOS #24

@Goktug

Description

@Goktug

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

  1. Create a PipecatClient with enableMic: 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: { /* ... */ },
})
  1. Observe that the OS microphone indicator activates immediately on connection, even though enableMic is false.

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions