Voice input works via Air Link but NOT on Quest 2 APK build — microphone not capturing speech on standalone

Context:

I’m building a VR therapy application using:

  • Unity 6 (6000.4.2f1), Universal Render Pipeline
  • Meta Quest 2 standalone (Android build, IL2CPP, ARM64)
  • Convai Unity SDK (latest)
  • Meta XR All-in-One SDK v85.0.0 + OpenXR
  • Downloaded FFI Libraries (Active Build Target) from Convai SDK setup

Problem:

Voice input works correctly when running through Air Link (PC microphone), but completely fails on the Quest 2 APK standalone build. The NPC connects and responds to code-triggered events in both scenarios, but on the APK build, user speech is never captured — the conversation monitor UI shows NPC responses but the user’s side remains empty.

Important: This issue started after the Meta Quest 2 headset updated to OS version 2.4. The same APK build worked correctly before the update.


Scenario 1 — Air Link (WORKS :white_check_mark:):

  • NPC connects and responds to voice input correctly
  • User speech appears in conversation monitor
  • [AudioTrackManager] Microphone published successfully

Scenario 2 — Quest 2 APK standalone build (DOESN’T WORK :cross_mark:):

  • NPC connects and responds to code-triggered events
  • User speech is NOT captured
  • No text appears on user side in conversation monitor
  • [AudioTrackManager] Microphone published successfully still appears in logs
  • No microphone or audio errors in logs

What I’ve tried:

  • Granted Microphone permission manually on device: Settings → Apps → [App] → Permissions → Microphone → Allow

Key observation:

Since Air Link uses the PC microphone and the APK uses the Quest 2 built-in microphone, the issue seems to be specifically with how the Convai SDK accesses the Quest microphone on standalone Android builds after the OS update. The SDK reports microphone as published successfully but no audio is actually captured.


Additional question:

Could the LLM model configured for the character have any impact on voice capture or processing? I’m asking because even though voice doesn’t work on the standalone build, event-based responses work fine — and through Air Link everything works correctly including voice, which suggests the LLM itself is not the issue. But wanted to confirm there’s no known interaction between the LLM model selection and microphone behavior on Android standalone.


Question:

Is there a known issue or specific configuration needed for the Convai SDK to correctly access the microphone on Quest 2 standalone APK builds after OS version 2.4? Any difference in microphone initialization between Air Link and Android standalone that could cause this?

Thank you!

Could you please share the logs and the SDK version you are using?

Problem:

Real-time conversation works correctly in Unity Editor (Play Mode) and via Air Link. My voice is captured and the Convai character responds. However, after building and running standalone on Meta Quest 2, voice is not captured and the character does not respond to voice input — only to code-triggered game events.

Key observation: The issue is NOT a simple delay. The exact behavior pattern from a single build:

  • Fresh install + first launch: voice does NOT work at all
  • Close app + close headset completely + wait several hours + relaunch: voice WORKS for a period
  • After some time of use: voice stops working again
  • Repeat: same cycle

The critical line identified in the logs:

[LiveKit] Android microphone started silently with AEC enabled. Restarting capture once.

But I’m not sure what it means. I attached full log file:

odh_logs_2026-06-07 08.58.14.994.txt (2.1 MB)

This issue started after Meta Quest 2 OS updated to version 2.4.

Convai Character config:

  • LLM: Gemma 4 31B Fast (beta), Temperature: 0.8
  • Languages: English, Romanian
  • Voice: Ximena Female Multilingual

SDK Version: Convai Unity SDK 4.1.0 (April 11, 2026) — installed via Unity Asset Store

Config in Unity:

image

Convai Manager:

Convai Character:


Convai Player:

Downloaded FFI Libraries for Active Build Target.

Hi Samuel_Ionesi

Thank you for reaching out to us and for providing such a detailed description of the issue.

First, please make sure you are using the latest Convai Unity SDK version 4.2.0.

We have not encountered this exact Quest 2 microphone issue on our side so far. Based on the behavior you described, this appears more likely to be related to Android microphone permission timing rather than the LLM or character configuration.

Air Link uses the PC/laptop microphone, so it follows a different audio capture path than the Quest standalone APK, which uses the headset microphone directly.

You can try either of these workarounds:

  1. Request microphone permission before initializing Convai, and only connect/start Convai after permission has been granted.
  2. Add an empty startup scene that requests Android microphone permission first, then load the Convai scene after permission is granted. This approach works well if you prefer not to modify your existing Convai initialization flow.

We have observed cases where, during the first app launch, the microphone may initialize before the permission flow has completed, or the user may initially deny the permission. The workarounds above generally resolve this scenario. Once microphone permission has been successfully granted, the application typically works as expected on subsequent launches.

Regarding the Quest OS update you mentioned, we have not confirmed any known issue specific to that OS version at this time. Since this behavior started after the update, we would need to investigate further to determine whether there is any OS-related change affecting microphone access.

Regarding your additional question: the LLM model configured for the character does not impact microphone capture or voice processing. Audio capture and speech transmission are independent of the LLM. Since event-triggered responses work correctly and voice input works through Air Link, the LLM is very unlikely to be related to the issue.

Please let us know the results after trying the suggested workarounds. If you need any further assistance or have additional logs/details to share, feel free to reach out, and we’ll be happy to help.

Best regards,
Convai Support Team