I am following a guide here https://www.twilio.com/docs/taskrouter/quickstart/ruby/agent-ui-add-project and encountered an issue when updating an activity or reservation's status.

This is the full error logged on the browser console VM272:1 POST https://event-bridge.twilio.com/v1/wschannels/AC509cc0d468c2924356d7f1f071254995/WK01bf75406b9b5bd6f56711507289386d 403 (Policies defined such that we cannot access the given resource)

In my controller, here's how the policy for activities and reservations are defined

    allow_activity_updates = Twilio::JWT::TaskRouterCapability::Policy.new(
      Twilio::JWT::TaskRouterCapability::TaskRouterUtils
      .all_activities(workspace_sid), 'POST', true
    )
    capability.add_policy(allow_activity_updates)

    allow_reservation_updates = Twilio::JWT::TaskRouterCapability::Policy.new(
      Twilio::JWT::TaskRouterCapability::TaskRouterUtils
      .all_reservations(workspace_sid, worker_sid), 'POST', true
    )
    capability.add_policy(allow_reservation_updates)

Javascript part

worker.update({"ActivitySid":nextActivitySid}, function(error, worker) {
                      if(error) {
                        console.log(error.code);
                        console.log(error.message);
                      } else {
                        console.log(worker.activityName); // "Offline"
                      }
                    });

The activity and reservation listeners are working well, just when I need to update it is having an issue.

1

There are 1 best solutions below

0
On BEST ANSWER

This is now resolved by Twilio's Support. Resolution is this missing capability which is not present on the docs.

allow_worker_update = Twilio::JWT::TaskRouterCapability::Policy.new(
  Twilio::JWT::TaskRouterCapability::TaskRouterUtils
  .worker(workspace_sid, worker_sid), 'POST', true
)
capability.add_policy(allow_worker_update)