Issue
Some Twilio users may encounter a scenario where an outbound call initiated via Twilio Studio connects successfully, but immediately returns an application error (HTTP 400, Error 11200) instead of proceeding to the next step in the flow. This often occurs when the Studio flow is designed to trigger an outbound call and then play a greeting or perform another action.
Symptoms
- Outbound call connects, but Studio returns
<Response/>with HTTP 400 (Error 11200). - The call execution gets stuck after the
make_outbound_callwidget. - The answered call webhook to Studio is missing the
FlowEventparameter. - Manual intervention is required to stop the execution.
Product
Studio
Cause
Twilio Studio tracks call sessions using a session key based on the “To” and “From” phone numbers. If the make_outbound_call widget dials a different number than the original session, the session key changes. When Twilio’s voice service checks with Studio for further instructions, it cannot find an active execution for the new session key. Studio will only create a new execution if the call status is not “in-progress.” If the call is still active, Studio cannot link to the previous execution or create a new one, resulting in a 400 error and a stuck flow.
Typical Scenario
- Studio flow is triggered via API or Function, using the Studio webhook URL as the handler.
- The flow includes a step to select a DID (phone number) and then uses
make_outbound_callto dial a lead. - If the “To” or “From” number changes in the outbound call, the session key is broken, and Studio cannot continue the flow.
Resolution
If your use case requires dialing a second number and connecting it to another user, Twilio Studio’s make_outbound_call widget may not support this directly. Instead, use Twilio Functions to handle the call logic outside Studio.
Example Twilio Function:
exports.handler = function(context, event, callback) {
const client = context.getTwilioClient();
const numberToCallFirst = "+XXXXXXXXXXXXXX"; // Second number
const twilioPhoneNumber = "+YYYYYYYYYYYYYY"; // Twilio phone number
const numberToConnectTo = "+ZZZZZZZZZZZZZZ"; // Connect Call To number
client.calls.create({
from: twilioPhoneNumber,
to: numberToCallFirst,
twiml: `<Response><Dial>${numberToConnectTo}</Dial></Response>`
})
.then(call => {
console.log(`Call initiated. SID: ${call.sid}`);
return callback(null, `Success! Call SID: ${call.sid}`);
})
.catch(error => {
console.error(error);
return callback(error);
});
};Replace the phone numbers as needed for your use case.
Additional Information
When designing outbound call flows in Twilio Studio, avoid changing the “To” or “From” numbers within the flow. If your workflow requires connecting multiple parties or dynamic call routing, use Twilio Functions for greater flexibility and reliability.
Below you will find references to useful documents:
- Twilio Studio Documentation
- Twilio Functions Documentation
If the issue persists, please reach out Twilio Support