WebSocket インタフェースで、2 時間を超えた接続が途中で切れる
| 項目 | 内容 |
|---|---|
| 状態 | 一部修正済み(会話_汎用(16k)、会話_汎用(8k)、会話_医療(16k)は修正済み) |
| 対象 | WebSocket インタフェース |
| 期間 | 2025 年 10 月 9 日ごろ〜(修正済みのエンジンは 2026 年 10 月 22 日まで) |
症状
WebSocket インタフェースで 2 時間を超えて続いている接続が、認識の途中で切断されることがあります。切断される前に、p コマンド応答パケットで次のメッセージを受け取ります。
p can't feed audio data to recognizer server
p コマンドの応答の説明では、このメッセージは主に、非音声区間が 600 秒を超えたときに出るものとしています。しかしこの不具合では、音声を送り続けている場合でも出ます。接続から 2 時間以上が経過していてこのメッセージを受け取った場合、この不具合による可能性があります。
この不具合によって切断された後も、再度接続して音声認識を開始すれば、通常どおり認識できます。また、この不具合による切断が発生した接続でも、切断されるまでの音声認識は通常どおり行われています。
WebSocket の接続は、制限事項のとおり最大 24 時間まで続けられる仕様です。接続から 24 時間たっておらず、音声を送り続けているのにこのメッセージを受け取って切断された場合は、弊社のシステムの不具合によるものです。大変ご迷惑をおかけし、申し訳ございません。
影響を受ける条件
次の 2 つの両方に当てはまる接続が対象です。ライブ字幕や会議のリアルタイム文字起こしのように、1 本の接続を長く使い続ける使い方が該当します。
- WebSocket インタフェースを使っている
- 1 本の接続が 2 時間を超えて続いている
同期 HTTP インタフェースと非同期 HTTP インタフェースは対象外です。2 時間以内に終わる WebSocket の接続も対象外です。また、上記の両方の条件に当てはまっても、切断されない場合もあります。
回避策
意図せず接続が切断されたときに、自動でつなぎ直す処理を入れてください。この処理が入っていれば、この不具合で切断されても、接続し直して再び音声認識を開始できます。
この不具合とは関係なく、WebSocket の接続はネットワークの状態などによって途中で切れることがあるため、長く接続し続ける使い方ではこの処理を入れることを推奨します。
原因
音声認識サーバーを入れ替えたり止めたりする際、弊社では、対象のサーバーに認識途中の接続がある場合は、認識が完了するまで待ってから止めています。しかし、2025 年 10 月 9 日ごろに行った設定の変更で、この認識完了を待つ処理が正しく働かなくなり、サーバーが停止対象となってから約 2 時間で待つのをやめて停止していました。
対応状況
| エンジン | 状態 |
|---|---|
| 会話_汎用(16k) | 2026 年 10 月 22 日に修正済み |
| 会話_汎用(8k) | 2026 年 10 月 22 日に修正済み |
| 会話_医療(16k) | 2026 年 10 月 22 日に修正済み |
| そのほかのエンジン | この不具合で切断された接続は見つかっていませんが、2026 年 11 月末までに同じ修正を実施します |
修正が完了したら、このページの状態を更新します。
再発を防ぐための取り組み
- 音声認識サーバーを止める際に、接続している音声認識処理の完了を正しく待てているかを確かめる仕組みを加える
- 新しい版の音声認識サーバーを導入する前の確認作業に、長い接続が途中で切断されないかを確かめる手順を加える
この件についてのお問い合わせは、技術的なお問い合わせからお送りください。