Meta Quest push to talk bug with immediate release

What do you need help with?

Bug report

Installation method

Unity Asset Store

Issue area

Chat UI / Transcript UI

Impact

Normal - something is not working as expected

Unity version

6000.4.0

Convai Unity SDK version

4.3.0

Target platform

Meta Quest

Where does it happen?

Both sample and custom scene

Short summary

As i set

What happened?

The SDK’s Push-to-Talk uses a keyboard key (KeyCode.T) through the following method in ConvaiManager:

private bool IsPushToTalkHeld()
{
KeyCode pushToTalkKey = PushToTalkKey;

#if ENABLE_LEGACY_INPUT_MANAGER
return Input.GetKey(pushToTalkKey);
#elif ENABLE_INPUT_SYSTEM
return IsInputSystemKeyHeld(pushToTalkKey);
#else
return false;
#endif
}

Since Meta Quest doesn’t use keyboard input, I replaced it with Meta controller input:

private bool IsPushToTalkHeld()
{
#if UNITY_ANDROID
InputDevice rightHand = InputDevices.GetDeviceAtXRNode(XRNode.RightHand);

if (rightHand.isValid &&
    rightHand.TryGetFeatureValue(CommonUsages.primaryButton, out bool pressed))
{
    return pressed;
}

return false;

#else
// Original keyboard implementation
#endif
}

This correctly triggers the built-in ConvaiPushToTalkController, so I’m not bypassing the SDK.

Current behavior

The A button successfully behaves as Push-to-Talk.

Press A → microphone opens.
Hold A while speaking → works.
Release A → ConvaiPushToTalkController.Release() is called.

However, there is an issue when releasing the button immediately after finishing a sentence.

Example

First interaction:

Hold A
Ask: “How can I help you today?”
Release A
NPC replies correctly.

Second interaction:

Hold A
Say: “Can you give me your name?”
Release A immediately after saying “Can you”

The transcript shows:

User:
Can you

After that, Convai never generates a response.

I checked the relevant documentation, resources, and similar forum posts before posting.

on

I confirm that I did not include API keys, tokens, passwords, secrets, private character data, private conversation logs, or customer data.

on

Hello,

Please follow the conversation input mode documentation here:

For Meta Quest, you do not need to modify the SDK method directly. Instead of using the default T key, you can configure the Push-to-Talk key using joystick button inputs.

You can use one of the following Unity KeyCode values:

Legacy KeyCode XR CommonUsages equivalent Meta/Oculus Quest button
KeyCode.JoystickButton0 Right Hand primaryButton Right controller A
KeyCode.JoystickButton1 Right Hand secondaryButton Right controller B
KeyCode.JoystickButton2 Left Hand primaryButton Left controller X
KeyCode.JoystickButton3 Left Hand secondaryButton Left controller Y

Please try setting the Push-to-Talk key to one of these joystick buttons instead of replacing the SDK input logic.

Is it necessary to create a Executor for each and every Action?