App Version
2.5.6 (99)
Platform
How you installed it
Google Play
What happened?
Device: POCO F8 Ultra, HyperOS 3 (Android 16)
Conduit version: 2.5.6 (99)
Symptom: on-device STT stops mid-word with zero pause. Happens only in Conduit, not in Gboard.
Logs: SODA starts correctly (“SodaSpeechRecognizer: Offline recognizer - start detection”), mic routed to Voice_Recognition, zero system errors or onEndOfSpeech. Full logcat attached (filtered + full run).
This is almost certainly a listener/session handling bug in Conduit on HyperOS 3.
log.txt
What should have happened?
On device STT should stop only when speech goes quiet.
How to reproduce
Select STT "on device"
Tap the microphone or the wave (call mode). It happens on both.
Start speaking, it randomly stops listening/transcribing.
Does this happen every time?
Yes, every time
When did this start?
Always
Screenshots
No response
Logs
What the logs prove
Conduit is using Google’s SODA offline speech recognizer (the official on-device STT engine on Android 16).
Exact lines at the moment you started STT:textConcurrentSodaManager: Initialized SODA with status: 0
SodaSpeechRecognizer: Offline recognizer - start detection
SodaAudioPusher: Starting to push audio to Soda
SodaSpeechRecognizer: #handleStartThis confirms “on device” mode is correctly calling the system SpeechRecognizer → SODA.
The microphone is routed perfectly: Qualcomm audio HAL (PAL/AGM/GSL) opens the Voice_Recognition stream on the handset mic (DeviceTX = Handset_Mic, DevicePP_Tx = Voice_Recognition). No permission denials, no AudioRecord errors, no “ERROR_NO_MATCH”, no “onEndOfSpeech”, no timeouts, no client disconnections.
No system-level error at all. The SODA session starts cleanly and the audio graph stays open. There is zero indication that HyperOS, the audio policy, or the Google engine killed the recognition.
→ This means the mid-word cutoff is happening inside Conduit itself.
The app is either:
losing the SpeechRecognizer listener callback, or
calling stopListening() prematurely (a known class of bugs in third-party wrappers on new Android versions), or
hitting an unhandled exception in its STT handling code on HyperOS 3.
This matches the complete absence of any “onError” or “onEndOfSpeech” in the logs — the system never told Conduit the session ended; Conduit just stopped receiving results.
log.txt
App Version
2.5.6 (99)
Platform
How you installed it
Google Play
What happened?
Device: POCO F8 Ultra, HyperOS 3 (Android 16)
Conduit version: 2.5.6 (99)
Symptom: on-device STT stops mid-word with zero pause. Happens only in Conduit, not in Gboard.
Logs: SODA starts correctly (“SodaSpeechRecognizer: Offline recognizer - start detection”), mic routed to Voice_Recognition, zero system errors or onEndOfSpeech. Full logcat attached (filtered + full run).
This is almost certainly a listener/session handling bug in Conduit on HyperOS 3.
log.txt
What should have happened?
On device STT should stop only when speech goes quiet.
How to reproduce
Select STT "on device"
Tap the microphone or the wave (call mode). It happens on both.
Start speaking, it randomly stops listening/transcribing.
Does this happen every time?
Yes, every time
When did this start?
Always
Screenshots
No response
Logs
What the logs prove
Conduit is using Google’s SODA offline speech recognizer (the official on-device STT engine on Android 16).
Exact lines at the moment you started STT:textConcurrentSodaManager: Initialized SODA with status: 0
SodaSpeechRecognizer: Offline recognizer - start detection
SodaAudioPusher: Starting to push audio to Soda
SodaSpeechRecognizer: #handleStartThis confirms “on device” mode is correctly calling the system SpeechRecognizer → SODA.
The microphone is routed perfectly: Qualcomm audio HAL (PAL/AGM/GSL) opens the Voice_Recognition stream on the handset mic (DeviceTX = Handset_Mic, DevicePP_Tx = Voice_Recognition). No permission denials, no AudioRecord errors, no “ERROR_NO_MATCH”, no “onEndOfSpeech”, no timeouts, no client disconnections.
No system-level error at all. The SODA session starts cleanly and the audio graph stays open. There is zero indication that HyperOS, the audio policy, or the Google engine killed the recognition.
→ This means the mid-word cutoff is happening inside Conduit itself.
The app is either:
losing the SpeechRecognizer listener callback, or
calling stopListening() prematurely (a known class of bugs in third-party wrappers on new Android versions), or
hitting an unhandled exception in its STT handling code on HyperOS 3.
This matches the complete absence of any “onError” or “onEndOfSpeech” in the logs — the system never told Conduit the session ended; Conduit just stopped receiving results.
log.txt