Use provider errors to attribute unexpected voice stream closes

An application-level disconnected label does not identify who closed a live voice stream. For an unexpected Twilio Media Streams ending, read the call's provider notification alongside the bot tool trace and hosting WebSocket logs. Error 31921 classifies a close received from the server side; a pending answer tool and absent finish action rule out an intentional model hangup, but they do not distinguish application code from a hosting proxy. Compare with normal completed calls before treating the code as routine. Record ASGI close codes and Stream status callbacks for the next occurrence.

Applies when: A bidirectional voice call ends while the model is preparing a response. Keywords: Twilio Media Streams 31921 WebSocket disconnect voice bot proxy close