Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time

Upgrade Guide

All MAJOR version bumps will have upgrade notes posted here.

[2023-01-25] 3.x.x to 4.x.x

  • Supported Node.js versions updated

    • Upgrade to Node.js >= 14
    • Dropped support for Node.js < 14 (#791)
    • Added support for Node.js 18 (#794)
  • Lazy loading enabled by default (#752)

    • Required Twilio modules now lazy load by default
    • See the README for how to disable lazy loading
  • Type changes from object to Record (#873)

    • Certain response properties now use the Record type with string keys
    • Including the subresourceUris property for v2010 APIs and the links properties for non-v2010 APIs
  • Access Tokens

    • Creating an AccessToken requires an identity in the options (#875)
    • ConversationsGrant has been deprecated in favor of VoiceGrant (#783)
    • IpMessagingGrant has been removed (#784)
  • TwiML function deprecations (#788)

    • <Refer>
      • Refer.referSip() replaced by Refer.sip()
    • <Say>
      • Say.ssmlBreak() and Say.break_() replaced by Say.break()

      • Say.ssmlEmphasis() replaced by Say.emphasis()

      • Say.ssmlLang() replaced by Say.lang()

      • Say.ssmlP() replaced by Say.p()

      • Say.ssmlPhoneme() replaced by Say.phoneme()

      • Say.ssmlProsody() replaced by Say.prosody()

      • Say.ssmlS() replaced by Say.s()

      • Say.ssmlSayAs() replaced by Say.sayAs()

      • Say.ssmlSub() replaced by Say.sub()

      • Say.ssmlW() replaced by Say.w()


        const response = new VoiceResponse();
        const say = response.say("Hello");


        const response = new VoiceResponse();
        const say = response.say("Hello");
  • TaskRouter Workers Statistics operations updated (#820)

    • Cumulative and Real-Time Workers Statistics no longer accept a WorkerSid

    • GET /v1/Workspaces/{WorkspaceSid}/Workers/CumulativeStatistics

      Old: client.taskrouter.v1.workspaces('WS...').workers('WK...).cumulativeStatistics()

      New: client.taskrouter.v1.workspaces('WS...').workers.cumulativeStatistics()

    • GET /v1/Workspaces/{WorkspaceSid}/Workers/RealTimeStatistics

      Old: client.taskrouter.v1.workspaces('WS...').workers('WK...).realTimeStatistics()

      New: client.taskrouter.v1.workspaces('WS...').workers.realTimeStatistics()

[2017-05-22] 3.1.x to 3.2.x

CHANGED - Rename video room Recordings class to RoomRecordings


  • This was done to avoid a class name conflict with another resource.
  • Client code should be unaffected unless you manipulate the Recording/RoomRecordings class directly. Accessing room recording metadata via the client should work the same way as before.