한 장 요약. 안내 음성은 원래 샛길(기기 안에서만 도는 통화 회선)로 나갑니다. 그 샛길이 열려야 소리가 제 크기로 나오는데, 그날은 세 번 다 열리지 않았습니다. 앱은 큰길로 우회했고, 큰길은 마이크가 켜져 있으면 iOS가 소리를 확 줄이는 길이라 “거의 안 들리는” 상태가 수업 끝까지 이어졌습니다. 서버·인터넷은 멀쩡했습니다.
그림 1소리길이 두 개다
핑퐁이 목소리와 안내 영상 소리는 서로 다른 길로 아이 귀에 갑니다.
두 소리의 운명이 갈린 지점 — 위는 통화 소리, 아래는 미디어 소리.
왜 영상이 직접 소리를 못 내나? 안내 영상은 createMediaElementSource로 오디오가 WebAudio 그래프에 통째로 빨려 들어갑니다. 그래서 영상 태그 자체로는 소리가 나지 않고, WebAudio가 내보내 주는 곳에서만 소리가 납니다.
로그에 Video audio loopback established는 한 번도 찍히지 않았습니다.
3/3샛길 시도 전부 실패
5초한 번 기다리는 시간
0성공한 횟수
17분3번째 실패 후 남은 수업
그림 4아이가 버튼을 누른 시각
세 번째 실패 18초 뒤 첫 신고가 들어왔습니다.
원인과 신고 사이의 간격이 18초 — 인과가 시간으로도 맞습니다.
‘도움이 필요해요’ 버튼은 정상 동작했습니다. 아이가 누른 6번(멈추기 3 · 소리 3) 모두 GUEST_ISSUE_REPORT 송신 기록이 남아 있고, 19:03:56에는 진행자가 AI 응답 취소로 반응한 흔적도 있습니다. 다만 진행자 화면에 알림이 떴는지는 해당 핸들러가 console.log만 남겨 세션 로그로는 확정할 수 없습니다 — 진행자 LogRocket 세션이 필요합니다.
그림 5인터넷 탓이 아닌 이유
샛길은 기기 밖으로 나가지 않습니다. 속도·끊김과 무관합니다.
“연결 타임아웃”은 대역폭이 아니라 5초 안에 연결 상태가 connected로 못 올라온 것입니다.
다만 한 가지 예외가 있습니다.대역폭·지연은 무관하지만 네트워크 인터페이스 구성은 다른 얘기입니다. 이 iPad는 셀룰러 연결이었고, 기기 내부 주소(mDNS/Bonjour)는 Wi-Fi 같은 로컬 링크에 기대는 구조라 셀룰러 전용이면 후보 수집이 비거나 막힐 수 있습니다. 그러면 “서버는 멀쩡한데 기기 안 샛길만 실패”라는 이 사건의 모양이 정확히 맞아떨어집니다.
그림 6남은 용의자 셋과 가르는 법
여기까지가 로그로 확정된 곳이고, 그 다음은 아직 갈리지 않았습니다.
① 셀룰러 전용
Wi-Fi 링크가 없어 기기 내부 주소(mDNS)를 못 만든다. 서버 연결만 멀쩡한 모양과 가장 잘 맞는다.
유력
② iOS Chrome 앱
엔진은 WebKit이지만 Safari와 별개 앱이라 로컬 네트워크 권한이 따로 걸린다. 꺼져 있으면 같은 결과.
가능
③ 기기 · iPadOS 26
이 기기 상태나 iPadOS 26.6.2 특정 동작. 위 둘을 배제한 뒤에 남는 후보.
가능
30초면 갈립니다
같은 iPad를 Wi-Fi에 연결해 수업 입장 → Video audio loopback established 가 뜨면 ①번 확정.
여전히 실패하면 설정 → Chrome → 로컬 네트워크 토글 확인, 그리고 같은 기기 Safari로 입장해 비교 → 뜨면 ②번, 안 뜨면 ③번.
다음 재발 때는 자동으로 확정됩니다. ICE 진단 로그(ICE_DIAGNOSTIC_SUMMARY)가 9/22 운영 배포에 포함됐습니다. 이제 loopback 타임아웃에도 localCandidateCount · localCandidateTypes가 함께 남아, 후보가 0개이거나 host가 없으면 그 자리에서 판별됩니다. 9/21 사건에는 이 로그가 없었습니다 — 머지는 9/21 16:30, 운영 배포는 9/22 10:32였습니다.
정리확정된 것과 추정인 것
내용
상태
근거
loopback이 3번 모두 5초 타임아웃으로 실패, 한 번도 성립 못 함
확정
세션 로그 · LogRocket 양쪽 동일 (VIDEO_AUDIO_LOOPBACK)
실패 후 직결 출력이 유지됨(무음 아님)
확정
코드 경로 — 성립 시에만 직결을 끊는데 성립 로그 0건
서버 연결·대역폭은 원인이 아님
확정
2·3차 실패 ±60초 네트워크 경고 0건 · LiveKit/SFU 정상
아동의 도움 요청 6건 모두 정상 송신
확정
GUEST_ISSUE_REPORT emit 기록
직결 출력이 덕킹돼 작게 들렸다
추정
코드 주석 + 7/8 실기기 검증 이력. 실제 출력 음량은 로그에 없음
셀룰러 전용이라 기기 내부 주소를 못 만들었다
추정
증상 모양과 일치. iOS는 NetworkInformation 미지원이라 로그로 확인 불가
진행자 화면에 도움 알림이 떴는지
미확인
모니터 핸들러가 console.log만 남김 → 진행자 LogRocket 필요
영향 범위 주의. 셀룰러 축이 맞다면 “셀룰러로 수업하는 모든 iPad에서 안내 음성이 덕킹 상태”라는 뜻이 됩니다. 한 아이의 기기 문제로 닫지 말고 Wi-Fi 비교 결과를 먼저 받아야 합니다.