aws / aws/amazon-chime-sdk-android

Audio session fails to start (xtl_conn_rec / err=-1) while video connects successfully

Open
#716 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Kotlin
Stars
113
Forks
60
Avg merge
40m
Merged PRs (30d)
2

Description

**Environment**
- SDK version: 0.25.4 (also reproduced on 0.25.1)
- Device: Xiaomi Redmi 9A/9C (model M2006C3LI), Android 10
- Chipset: MediaTek MT6765

**Description**
When joining a meeting, the video connection succeeds every time
(wss://signal.m1.ao1.app.chime.aws:443), but the audio connection fails
immediately, every time, on a separate host/port
(*.k.m1.ao1.app.chime.aws:3278, fallback 3478).

**Logs**
E/DefaultAudioClientObserver: failed to init xtl_conn_rec
E/DefaultAudioClientObserver: failed to setup session; err=-1
E/audioclient_jni: FAILED STARTING AUDIO CLIENT SESSION
E/DefaultAudioClientController: Failed to start audio session. Response code: -1

As a result, realtimeLocalMute()/realtimeLocalUnmute() both return false
for the entire call, since the audio session never actually establishes.

**What I've ruled out**
- Not a permissions issue — RECORD_AUDIO and CAMERA are both granted
- Not a network/firewall issue — reproduces identically on two different
networks (mobile data and Wi-Fi)
- Not an SDK version issue — reproduces identically on 0.25.1 and 0.25.4
(latest)
- Not a device-selection issue — audioVideo.chooseAudioDevice() is called
correctly before start(), confirmed via logs (device selection succeeds,
it's the session/transport step that fails)
- The web SDK (amazon-chime-sdk-js) works correctly for the same meeting
from a browser, so this appears isolated to the Android native SDK

**Steps to reproduce**
1. Create a meeting via the Chime CreateMeeting/CreateAttendee APIs
2. Join via the Android SDK (audioVideo.start())
3. Video connects and streams normally
4. Audio session logs "failed to init xtl_conn_rec" / "err=-1" within ~1
second of start(), and never recovers

**Expected behavior**
Audio session should connect successfully, same as it does via the web SDK
for the same meeting.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the failure on the specified Xiaomi Redmi 9A/9C with Android 10, calling audioVideo.chooseAudioDevice() before audioVideo.start(). Review the audio-session path around the reported xtl_conn_rec and err=-1 logs, comparing the successful video connection with the failed audio transport. Done means the audio session starts reliably and realtimeLocalMute() and realtimeLocalUnmute() no longer return false for the call.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, aws, kotlin
Domain
audio-video-rtc, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.