Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

294
Vistas
Error calling "updateToken" on client denied state change, using Twilio Conversations JS SDK

I am using the Twilio conversations JS SDK, and I need to refresh my connection token if it is expired or invalid. The issue is that, if I call the updateToken() function when the connection state change to "denied", I get the following error:

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'updateToken')

I am using it like this:

let conversationsClient = new Twilio.Conversations.Client('SOME_EXPIRED_OR_INVALID_TOKEN')
conversationsClient.on("connectionStateChanged", (state) => {
  switch (state) {
    case "denied":
      conversationsClient.updateToken(getConversationsToken());
      break
  }
});

For some reason my conversationsClient object is undefined when it enters the denied state.

According the SDK documentation (https://media.twiliocdn.com/sdk/js/conversations/releases/2.0.0/docs/modules.html#ConnectionState), I can update the token when the state is changed to denied.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

My guess here is that your getConversationsToken function is asynchronous as it presumably makes a request to your server. But you are passing the result of the function, not the result of the asynchronous action.

I assume that getConversationsToken returns a promise, so you might be able to fix this by updating the token in the then callback:

let conversationsClient = new Twilio.Conversations.Client('SOME_EXPIRED_OR_INVALID_TOKEN')
conversationsClient.on("connectionStateChanged", (state) => {
  switch (state) {
    case "denied":
      getConversationsToken().then(token => {
        conversationsClient.updateToken(token);
      }).catch(error => console.error(error));
      break
  }
});

Or, you could use async/await like this:

let conversationsClient = new Twilio.Conversations.Client('SOME_EXPIRED_OR_INVALID_TOKEN')
conversationsClient.on("connectionStateChanged", async (state) => {
  switch (state) {
    case "denied":
      conversationsClient.updateToken(await getConversationsToken());
      break
  }
});
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda