Menu

Troubleshooting and the Debugger UI

Depending on the situation, there are many ways to troubleshoot errors and other issues that you may encounter while using the Flex UI. Read on to learn more about various errors you might see, and how you can use the Debugger UI to generate Error Reports to help get your problems solved.

Are you looking to build customized error monitoring and reporting instead? Check out the Developer Documentation instead!

Types of errors

As you use the Flex UI, you may encounter errors from:

  • 3rd party packages (e.g. React, Redux, Material UI) and Twilio packages (e.g., Chat SDK, Sync SDK) used by the Flex UI
  • Custom plugins that you've built
  • the Flex UI itself

Errors from all these sources can significantly degrade Flex functionality or lead to other unexpected behaviors.

Fortunately, some of these issues are simple fixes (for example, by checking your network connection). Others will require help from admins, developers, or additional support. In each case, fixing an error starts by understanding its cause and getting any additional context about the issue.

Where Errors Appear

Flex can notify you about errors in 3 different ways:

  • During Flex initialization with the error page
  • With an error notification
  • In the Debugger UI

Flex Initialization Errors

If Flex UI fails to initialize, Flex will display an error message, which contains the option to retry or download a report with more details about the error.

Warning and Error notifications

Flex handles a collection of common errors with custom, integrated error notifications. For these handled errors, like errors when dialing a phone number, Flex will display an error notification with an error code.

Debugger UI

Pilot Feature

The Debugger UI Integration is currently offered as a Pilot Feature and has some important limitations. With pilot releases, our focus is to verify functionality and gather feedback from a limited set of customers. Pilot Features are not covered by a Twilio SLA or support plan.

In order to use the Debugger UI, you'll need to enable it on the pre-release features page within Flex Admin for Flex UI v1.25 or higher.

All other errors (unhandled errors) will be shown in the Debugger UI. You'll have a “bug” icon in Main Header. If an unhandled error occurs, the bug icon will show a red badge.

When clicking on the bug icon, you'll see a status report with details of the detected error. More details of the encountered error(s) can be downloaded into a report (see the Error Report section for more details.)

Screenshot 2021-02-22 at 12.31.42.png

If no errors have happened in the current session, you can still download a report, which will contain your session data and last 1000 log lines. This is particularly useful if Flex is experiencing some unexpected behavior, but you're not seeing any errors.

Screenshot 2021-02-22 at 12.33.07.png

Error report

Error reports can be downloaded when an error has occurred during Flex initialization, or at any point while running Flex (with or without errors). They contain the following details:

  • For each error detected:
    • Full error description
    • Stack trace
    • Source of the error
    • User session data
  • Last 1000 debug level log lines

Client-side logs or errors are allowed to contain PII (Personally Identifiable Information) because they are transient and are not saved beyond a user session. By exporting them, however, PII is also exported and saved to the file. Please take proper precautions to protect your customers' data when saving and sharing this file.

Sample Report

## Twilio Flex Error report

## ERROR: "task could not be created"

### LOG LINE
```
22/02/2021, 12:29:49 - OutboundCalling: The RoutingTarget Worker is not valid for the given TaskQueueSid

Original error:
"Request failed with status code 400"
```

### STACK TRACE
```
Error: task could not be created
    at new n (https://assets.flex.twilio.com/releases/flex-ui/1.25.0-rc5/twilio-flex.unbundled-react.min.js:157:27254)
    at e.createAndProcessError (https://assets.flex.twilio.com/releases/flex-ui/1.25.0-rc5/twilio-flex.unbundled-react.min.js:157:29799)
    at https://assets.flex.twilio.com/releases/flex-ui/1.25.0-rc5/twilio-flex.unbundled-react.min.js:1476:417206
    at https://assets.flex.twilio.com/releases/flex-ui/1.25.0-rc5/twilio-flex.unbundled-react.min.js:1476:410939
    at Object.throw (https://assets.flex.twilio.com/releases/flex-ui/1.25.0-rc5/twilio-flex.unbundled-react.min.js:1476:411044)
    at s (https://assets.flex.twilio.com/releases/flex-ui/1.25.0-rc5/twilio-flex.unbundled-react.min.js:1476:409809)
```

### DETAILS
```
{
    "message": "task could not be created",
    "wrappedError": "Request failed with status code 400",
    "type": "taskrouterSDK",
    "description": "The RoutingTarget Worker is not valid for the given TaskQueueSid",
    "context": "OutboundCalling",
    "severity": "normal"
}
```
### WRAPPED ERROR

```
message: Request failed with status code 400
stack: Error: Request failed with status code 400
    at e.exports (https://assets.flex.twilio.com/releases/flex-ui/1.25.0-rc5/twilio-flex.unbundled-react.min.js:1575:190351)
    at e.exports (https://assets.flex.twilio.com/releases/flex-ui/1.25.0-rc5/twilio-flex.unbundled-react.min.js:1582:81955)
    at XMLHttpRequest.f.<computed> (https://assets.flex.twilio.com/releases/flex-ui/1.25.0-rc5/twilio-flex.unbundled-react.min.js:1575:191467)
    at XMLHttpRequest.t._rollbar_wrapped.t._rollbar_wrapped (https://cdnjs.cloudflare.com/ajax/libs/rollbar.js/2.4.6/rollbar.min.js:1:5409)
```
            
### SESSION DATA
```
{
    "config": {
        "sso": {
            "loginUrl": "https://preview.twilio.com/iam/Accounts/{accountSid}/authenticate",
            "loginPopup": true,
            "accountSid": ""
        },
        "language": "en-US",
        "colorTheme": {
            "baseName": "GreyLight",
            "light": true,
            "preset": {
                "id": "mono-light",
                "name": "Simple Light"
            },
            "overrides": {
                "MainHeader": {
                    "Button": {
                        "color": "#000000"
                    },
                    "Container": {
                        "color": "#000000",
                        "background": "#FFFFFF"
                    },
                    "Icon": {
                        "color": "#000000"
                    }
                },
                "SideNav": {
                    "Button": {
                        "background": "#FFFFFF"
                    },
                    "Container": {
                        "background": "#FFFFFF"
                    },
                    "Icon": {
                        "color": "#000000"
                    }
                }
            }
        },
        "pluginService": {
            "enabled": true,
            "url": "https://flex.twilio.com/plugins?hosted=true"
        },
        "sdkOptions": {
            "insights": {
                "logLevel": "debug",
                "region": "us1",
                "productId": "flex_insights"
            },
            "chat": {
                "logLevel": "error",
                "region": "us1"
            },
            "worker": {
                "wsServer": "wss://event-bridge.twilio.com/v1/wschannels",
                "ebServer": "https://event-bridge.twilio.com/v1/wschannels"
            },
            "voice": {
                "eventgw": "eventgw.twilio.com",
                "chunderw": "chunderw-vpc-gll.twilio.com"
            },
            "flex": {
                "logger": {
                    "level": "trace"
                }
            }
        },
        "rejectPendingReservations": true,
        "notifications": {
            "browser": true
        },
        "enableClientCalling": false,
        "logLevel": "debug",
        "flexServiceUrl": "https://preview.twilio.com/Flex",
        "serviceBaseUrl": "ginger-bulldog-XXXX.twil.io",
        "warmTransfers": {
            "enabled": true
        },
        "chatOrchestrationServiceUrl": "https://preview.twilio.com/Flex/WebChannels",
        "showSupervisorDesktopView": true,
        "debugMode": true,
        "flexConfigServiceUrl": "https://flex-api.twilio.com/v1/Configuration",
        "configurationUrl": "https://flex-api.twilio.com/v1/Configuration",
        "queuesStats": {
            "baseApiUrl": "https://taskrouter.twilio.com/v1/Workspaces/",
            "pollInterval": 1
        },
        "startEngagementUrl": "xanadu-labradoodle-XXXX.twil.io/createchat",
        "showRealtimeQueuesStats": true,
        "componentProps": {
            "AgentsDataTable": {},
            "TaskListItem": {},
            "AgentDesktopView": {}
        },
        "version_message": "",
        "version_compatibility": "yes",
        "router": {
            "type": "memory"
        }
    },
    "reactVersion": "16.5.2",
    "bundleType": "cdnUnbundledReact",
    "plugins": {
        "0": {
            "name": "Admin Plugin"
        },
        "1": {
            "name": "Dialpad Plugin"
        },
        "2": {
            "name": "Flex Debugger Plugin"
        },
        "3": {
            "name": "Flex Diagnostics Tool Plugin"
        },
        "length": 4
    }
}
```

### LOGS
<pre>
12:27:50 | info | Flex UI logger decorated
12:27:50 | info | Manager: Creating manager. flex-ui version: 1.25.0 core-ui version: 0.50.0
12:27:50 | log | Manager: Flex UI bundle type - "cdnUnbundledReact"
12:27:50 | log | Manager: React version - "16.5.2"
12:27:50 | info | Manager: loginHandler created
12:27:50 | info | Manager: manager created
12:27:51 | info | Manager: remote config received
12:27:51 | log | Notification handler browser enabled=true
12:27:51 | info | Manager: features received
12:27:51 | info | SessionState: ssoLogin
12:27:51 | info | SessionState: initializing SDK clients
12:27:51 | log | [2021-02-22 12:27:51.532] Flex SDK → flex:Twilsock (DEBUG):  Twilsock constructed
12:27:51 | log | [2021-02-22 12:27:51.535] Flex SDK → flex:Session (DEBUG):  Session constructed
12:27:51 | log | [2021-02-22 12:27:51.539] Flex SDK → flex:Session (DEBUG):  will initialize session with token:  eyJ6aXAiOiJERUYiLCJjdHkiOiJ0d2lsaW8tZnBhO3Y9MSIsImVuYyI6IkEyNTZHQ00iLCJhbGciOiJkaXIiLCJ0d3IiOiJ1czEiLCJraWQiOiJTQVNfUzNfX19LTVNfdjEifQ..I69QUbdywqOQQYTE.XiFIXNq3nZjcq77cxP2oSNw_gb-yPBO26CPp3Ek642bemfcGHVZy0pj_W_pkbr_ipxilZyThya0kgeYDF1LgKqL46sfLGx98JofUpeydOsq811jHGn9PiAnWXFaxUAX2Tj39u7cq0659CXRK5jAFvuTAWTyx9zzt8VJC8kysmEIh9rBU_AOapG_6efcVD_YN-BXCEf30KJj2JeV_VCOdvHokeZDj2OXVapsgtUEX4J4HjJ53oAZ9964NanrcMh4uJDU77GfIWeAVi2UZ25ob3iRQHQtFcoEyK15adPGhCUTRwI2A2YvVuaIdwQvWyYqP0zrr2Cu0j4vYNdzxbzMoOgpokQcCn7AnfGJeaQyUYsx_pMOsbizMQb_05gu5Xbkbynr7xTaZNSuV-yNZdP6Byi51ZKzeFwwoSuWg5icrRAy24FXqOQUVbnyVxsmh8a2qEoEL2lXQXEtfcOIeySbcUKd0aylqxra4DjdI22J3arbnT0wKDUFQgOHhDlzHKJzIQunVSdad42SLnxSBf2VKIGEITJNQ1UirigOPv6DxU9_2HMN236VnGcwNwkDuorMWjtUaGwlAdCX6fI0yvVayH-HpInxhA83vzeb40A3Prd5jiHfGajYhyfl2SoNesXHlT6UKKFUN8a30Cy1mYFJyR_-07d4VrWvuP_KjObdCzOeR43-yJCwvnQk7DW5rQfgC0LwkVCiNE4tIMh2XTPBAoOsmMdMUtGhulyLPwxQGmieZtl8PYrWBvISEryB-MjFaix2ohMHRAPqTBfD4bdWVDmyI8fzeIpDvEoGXFQ4btl5_8RWi6LyiHEsD-9nY9skPCYTTpjNwoOOE_Eu [CUT 1248 characters]}
12:27:51 | log | [2021-02-22 12:27:51.540] Flex SDK → flex:Session (DEBUG):  will update token:  false
12:27:51 | log | 2021-02-22T10:27:51.543Z Twilsock T: resetBackoff
12:27:51 | log | 2021-02-22T10:27:51.544Z Twilsock T: finalizeSocket
12:27:51 | log | 2021-02-22T10:27:51.544Z Twilsock T: closing socket
12:27:51 | log | 2021-02-22T10:27:51.546Z Notifications T: Persisting registration {} {"token":"eyJ6aXAiOiJERUYiLCJjdHkiOiJ0d2lsaW8tZnBhO3Y9MSIsImVuYyI6IkEyNTZHQ00iLCJhbGciOiJkaXIiLCJ0d3IiOiJ1czEiLCJraWQiOiJTQVNfUzNfX19LTVNfdjEifQ..I69QUbdywqOQQYTE.XiFIXNq3nZjcq77cxP2oSNw_gb-yPBO26CPp3Ek642bemfcGHVZy0pj_W_pkbr_ipxilZyThya0kgeYDF1LgKqL46sfLGx98JofUpeydOsq811jHGn9PiAnWXFaxUAX2Tj39u7cq0659CXRK5jAFvuTAWTyx9zzt8VJC8kysmEIh9rBU_AOapG_6efcVD_YN-BXCEf30KJj2JeV_VCOdvHokeZDj2OXVapsgtUEX4J4HjJ53oAZ9964NanrcMh4uJDU77GfIWeAVi2UZ25ob3iRQHQtFcoEyK15adPGhCUTRwI2A2YvVuaIdwQvWyYqP0zrr2Cu0j4vYNdzxbzMoOgpokQcCn7AnfGJeaQyUYsx_pMOsbizMQb_05gu5Xbkbynr7xTaZNSuV-yNZdP6Byi51ZKzeFwwoSuWg5icrRAy24FXqOQUVbnyVxsmh8a2qEoEL2lXQXEtfcOIeySbcUKd0aylqxra4DjdI22J3arbnT0wKDUFQgOHhDlzHKJzIQunVSdad42SLnxSBf2VKIGEITJNQ1UirigOPv6DxU9_2HMN236VnGcwNwkDuorMWjtUaGwlAdCX6fI0yvVayH-HpInxhA83vzeb40A3Prd5jiHfGajYhyfl2SoNesXHlT6UKKFUN8a30Cy1mYFJyR_-07d4VrWvuP_KjObdCzOeR43-yJCwvnQk7DW5rQfgC0LwkVCiNE4tIMh2XTPBAoOsmMdMUtGhulyLPwxQGmieZtl8PYrWBvISEryB-MjFaix2ohMHRAPqTBfD4bdWVDmyI8fzeIpDvEoGXFQ4btl5_8RWi6LyiHEsD-9nY9skPCYTTp [CUT 1298 characters]}
12:27:51 | log | 2021-02-22T10:27:51.547Z Notifications T: Persisting registration {} {"token":"eyJ6aXAiOiJERUYiLCJjdHkiOiJ0d2lsaW8tZnBhO3Y9MSIsImVuYyI6IkEyNTZHQ00iLCJhbGciOiJkaXIiLCJ0d3IiOiJ1czEiLCJraWQiOiJTQVNfUzNfX19LTVNfdjEifQ..I69QUbdywqOQQYTE.XiFIXNq3nZjcq77cxP2oSNw_gb-yPBO26CPp3Ek642bemfcGHVZy0pj_W_pkbr_ipxilZyThya0kgeYDF1LgKqL46sfLGx98JofUpeydOsq811jHGn9PiAnWXFaxUAX2Tj39u7cq0659CXRK5jAFvuTAWTyx9zzt8VJC8kysmEIh9rBU_AOapG_6efcVD_YN-BXCEf30KJj2JeV_VCOdvHokeZDj2OXVapsgtUEX4J4HjJ53oAZ9964NanrcMh4uJDU77GfIWeAVi2UZ25ob3iRQHQtFcoEyK15adPGhCUTRwI2A2YvVuaIdwQvWyYqP0zrr2Cu0j4vYNdzxbzMoOgpokQcCn7AnfGJeaQyUYsx_pMOsbizMQb_05gu5Xbkbynr7xTaZNSuV-yNZdP6Byi51ZKzeFwwoSuWg5icrRAy24FXqOQUVbnyVxsmh8a2qEoEL2lXQXEtfcOIeySbcUKd0aylqxra4DjdI22J3arbnT0wKDUFQgOHhDlzHKJzIQunVSdad42SLnxSBf2VKIGEITJNQ1UirigOPv6DxU9_2HMN236VnGcwNwkDuorMWjtUaGwlAdCX6fI0yvVayH-HpInxhA83vzeb40A3Prd5jiHfGajYhyfl2SoNesXHlT6UKKFUN8a30Cy1mYFJyR_-07d4VrWvuP_KjObdCzOeR43-yJCwvnQk7DW5rQfgC0LwkVCiNE4tIMh2XTPBAoOsmMdMUtGhulyLPwxQGmieZtl8PYrWBvISEryB-MjFaix2ohMHRAPqTBfD4bdWVDmyI8fzeIpDvEoGXFQ4btl5_8RWi6LyiHEsD-9nY9skPCYTTp [CUT 1298 characters]}
12:27:51 | log | 2021-02-22T10:27:51.548Z Notifications T: Persisting registration {} {"token":"eyJ6aXAiOiJERUYiLCJjdHkiOiJ0d2lsaW8tZnBhO3Y9MSIsImVuYyI6IkEyNTZHQ00iLCJhbGciOiJkaXIiLCJ0d3IiOiJ1czEiLCJraWQiOiJTQVNfUzNfX19LTVNfdjEifQ..I69QUbdywqOQQYTE.XiFIXNq3nZjcq77cxP2oSNw_gb-yPBO26CPp3Ek642bemfcGHVZy0pj_W_pkbr_ipxilZyThya0kgeYDF1LgKqL46sfLGx98JofUpeydOsq811jHGn9PiAnWXFaxUAX2Tj39u7cq0659CXRK5jAFvuTAWTyx9zzt8VJC8kysmEIh9rBU_AOapG_6efcVD_YN-BXCEf30KJj2JeV_VCOdvHokeZDj2OXVapsgtUEX4J4HjJ53oAZ9964NanrcMh4uJDU77GfIWeAVi2UZ25ob3iRQHQtFcoEyK15adPGhCUTRwI2A2YvVuaIdwQvWyYqP0zrr2Cu0j4vYNdzxbzMoOgpokQcCn7AnfGJeaQyUYsx_pMOsbizMQb_05gu5Xbkbynr7xTaZNSuV-yNZdP6Byi51ZKzeFwwoSuWg5icrRAy24FXqOQUVbnyVxsmh8a2qEoEL2lXQXEtfcOIeySbcUKd0aylqxra4DjdI22J3arbnT0wKDUFQgOHhDlzHKJzIQunVSdad42SLnxSBf2VKIGEITJNQ1UirigOPv6DxU9_2HMN236VnGcwNwkDuorMWjtUaGwlAdCX6fI0yvVayH-HpInxhA83vzeb40A3Prd5jiHfGajYhyfl2SoNesXHlT6UKKFUN8a30Cy1mYFJyR_-07d4VrWvuP_KjObdCzOeR43-yJCwvnQk7DW5rQfgC0LwkVCiNE4tIMh2XTPBAoOsmMdMUtGhulyLPwxQGmieZtl8PYrWBvISEryB-MjFaix2ohMHRAPqTBfD4bdWVDmyI8fzeIpDvEoGXFQ4btl5_8RWi6LyiHEsD-9nY9skPCYTTp [CUT 1298 characters]}
12:27:51 | log | 2021-02-22T10:27:51.548Z Twilsock T: connect
12:27:51 | log | 2021-02-22T10:27:51.549Z Twilsock D: FSM: userConnect: disconnected --> connecting
12:27:51 | log | 2021-02-22T10:27:51.549Z Twilsock T: setupSocket: eyJ6aXAiOiJERUYiLCJjdHkiOiJ0d2lsaW8tZnBhO3Y9MSIsImVuYyI6IkEyNTZHQ00iLCJhbGciOiJkaXIiLCJ0d3IiOiJ1czEiLCJraWQiOiJTQVNfUzNfX19LTVNfdjEifQ..I69QUbdywqOQQYTE.XiFIXNq3nZjcq77cxP2oSNw_gb-yPBO26CPp3Ek642bemfcGHVZy0pj_W_pkbr_ipxilZyThya0kgeYDF1LgKqL46sfLGx98JofUpeydOsq811jHGn9PiAnWXFaxUAX2Tj39u7cq0659CXRK5jAFvuTAWTyx9zzt8VJC8kysmEIh9rBU_AOapG_6efcVD_YN-BXCEf30KJj2JeV_VCOdvHokeZDj2OXVapsgtUEX4J4HjJ53oAZ9964NanrcMh4uJDU77GfIWeAVi2UZ25ob3iRQHQtFcoEyK15adPGhCUTRwI2A2YvVuaIdwQvWyYqP0zrr2Cu0j4vYNdzxbzMoOgpokQcCn7AnfGJeaQyUYsx_pMOsbizMQb_05gu5Xbkbynr7xTaZNSuV-yNZdP6Byi51ZKzeFwwoSuWg5icrRAy24FXqOQUVbnyVxsmh8a2qEoEL2lXQXEtfcOIeySbcUKd0aylqxra4DjdI22J3arbnT0wKDUFQgOHhDlzHKJzIQunVSdad42SLnxSBf2VKIGEITJNQ1UirigOPv6DxU9_2HMN236VnGcwNwkDuorMWjtUaGwlAdCX6fI0yvVayH-HpInxhA83vzeb40A3Prd5jiHfGajYhyfl2SoNesXHlT6UKKFUN8a30Cy1mYFJyR_-07d4VrWvuP_KjObdCzOeR43-yJCwvnQk7DW5rQfgC0LwkVCiNE4tIMh2XTPBAoOsmMdMUtGhulyLPwxQGmieZtl8PYrWBvISEryB-MjFaix2ohMHRAPqTBfD4bdWVDmyI8fzeIpDvEoGXFQ4btl5_8RWi6LyiHEsD-9nY9skPCYTTpjNwoOOE_Eu [CUT 1248 characters]}
12:27:51 | log | 2021-02-22T10:27:51.550Z Twilsock D: Adding starting timepoint for 'twilsock.sdk.connect' event
12:27:51 | log | 2021-02-22T10:27:51.550Z Twilsock T: connecting to socket
12:27:51 | log | 2021-02-22T10:27:51.551Z Notifications T: Add subscriptions for message type:  twilio.sync.event twilsock
12:27:51 | log | 2021-02-22T10:27:51.551Z Notifications T: Persisting registration {} {"token":"","notificationId":"","messageTypes":{}}
12:27:51 | log | 2021-02-22T10:27:51.552Z Notifications T: Add subscriptions for message type:  com.twilio.rtd.cds.document twilsock
12:27:51 | log | 2021-02-22T10:27:51.552Z Notifications T: One registration attempt is already in progress
12:27:51 | log | 2021-02-22T10:27:51.552Z Notifications T: Add subscriptions for message type:  com.twilio.rtd.cds.list twilsock
12:27:51 | log | 2021-02-22T10:27:51.553Z Notifications T: One registration attempt is already in progress
12:27:51 | log | 2021-02-22T10:27:51.553Z Notifications T: Add subscriptions for message type:  com.twilio.rtd.cds.map twilsock
12:27:51 | log | 2021-02-22T10:27:51.553Z Notifications T: One registration attempt is already in progress
12:27:51 | log | Insights Client initial connection state: connecting
12:27:51 | log | 2021-02-22T10:27:51.557Z Twilsock D: Emitting stateChanged("connecting")
12:27:51 | log | 2021-02-22T10:27:51.558Z Twilsock D: Emitting stateChanged("connecting")
12:27:51 | log | 2021-02-22T10:27:51.559Z Twilsock D: Emitting stateChanged("connecting")
12:27:51 | log | 2021-02-22T10:27:51.561Z Notifications T: Persisting registration {} {"token":"","notificationId":"","messageTypes":{}}
12:27:51 | log | 2021-02-22T10:27:51.565Z Notifications T: Persisting registration {} {"token":"","notificationId":"","messageTypes":{}}
12:27:51 | info | PhoneState: handleDeviceReady {"connectionSecrets":{},"handleDeviceChange":"[Function]","handleDeviceReady":"[Function]","handleDeviceError":"[Function]","handleDeviceConnect":"[Function]","handleDeviceDisconnect":"[Function]","handleDeviceIncoming":"[Function]","handleDeviceCancel":"[Function]","handleConnectionMute":"[Function]","_listening":true} {"_events":{"error":["[Function]","[Function]","[Function]"],"ready":["[Function]","[Function]"],"connect":"[Function]","disconnect":"[Function]","incoming":"[Function]","cancel":"[Function]"},"_eventsCount":6,"audio":{"_events":"[Object]","_eventsCount":3,"availableInputDevices":"[Object]","availableOutputDevices":"[Object]","_audioConstraints":null,"_inputDevice":null,"_inputStream":null,"_isPollingInputVolume":false,"_log":"[Object]","_unknownDeviceIndexes":"[Object]","_removeLostInput":"[Function]","_removeLostOutput":"[Function]","_updateAvailableDevices":"[Function]","_getUserMedia":"[Function]","_mediaDevices":"[Object]","_onActiveInputChanged":"[Function]","isOutputSelectionSupported":true,"isVolumeSupported":true,"disconnect":"[Function]","incoming":"[Function]","outgoing":"[Function]","_audioContext":"[Object]","_inputVolumeAnalyser":"[Object]","ringtoneDevices":"[Object]","speakerDevices":"[Object]"},"connections":[],"isInitialized":true,"sounds":{"disconnect":"[Function]"," [CUT 8809 characters]}
Rate this page:

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Community Forums or browsing the Twilio tag on Stack Overflow.

Thank you for your feedback!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Sending your feedback...
🎉 Thank you for your feedback!
Something went wrong. Please try again.

Thanks for your feedback!

Refer us and get $10 in 3 simple steps!

Step 1

Get link

Get a free personal referral link here

Step 2

Give $10

Your user signs up and upgrade using link

Step 3

Get $10

1,250 free SMSes
OR 1,000 free voice mins
OR 12,000 chats
OR more