You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Twilio Flex自定义插件开发接电时出现‘no active call’异常求助

Twilio Flex试用账户自定义插件接起来电报错"no active call"的排查与解决

问题背景

基于React示例项目开发Twilio Flex自定义插件,试用账户环境下,来电已路由至默认任务队列,但点击UI绿色接起按钮时触发Error-45600(自定义代码通用错误),浏览器控制台抛出WorkerActions.AcceptTask: no active call错误。关闭错误提示后可正常通话、执行保持等操作,更换网络、隔离自定义代码后问题仍存在。

报错详情

  • 浏览器报错:

ERROR
Script error.
at handleError (http://localhost:3000/plugins/plugin-ioconnect.js:11524:58)
at http://localhost:3000/plugins/plugin-ioconnect.js:11543:7

  • 控制台报错:
twilio-flex.unbundled-react.min.js:207 11/6/2024, 5:19:53 PM - WorkerActions.AcceptTask: no active call
apply @ twilio-flex.unbundled-react.min.js:207
apply @ twilio-flex.unbundled-react.min.js:207
e.processError @ twilio-flex.unbundled-react.min.js:207
e.createAndProcessError @ twilio-flex.unbundled-react.min.js:207
(anonymous) @ twilio-flex.unbundled-react.min.js:207
setTimeout
(anonymous) @ twilio-flex.unbundled-react.min.js:207
(anonymous) @ twilio-flex.unbundled-react.min.js:207
(anonymous) @ twilio-flex.unbundled-react.min.js:207
a @ twilio-flex.unbundled-react.min.js:207
Promise.then
c @ twilio-flex.unbundled-react.min.js:207
(anonymous) @ twilio-flex.unbundled-react.min.js:207
s @ twilio-flex.unbundled-react.min.js:207
e.acceptTask @ twilio-flex.unbundled-react.min.js:207
(anonymous) @ twilio-flex.unbundled-react.min.js:207
(anonymous) @ twilio-flex.unbundled-react.min.js:207
(anonymous) @ twilio-flex.unbundled-react.min.js:207
(anonymous) @ twilio-flex.unbundled-react.min.js:207
r @ twilio-flex.unbundled-react.min.js:207
e.invokeAction @ twilio-flex.unbundled-react.min.js:207
(anonymous) @ twilio-flex.unbundled-react.min.js:207
(anonymous) @ twilio-flex.unbundled-react.min.js:207
(anonymous) @ twilio-flex.unbundled-react.min.js:207
(anonymous) @ twilio-flex.unbundled-react.min.js:207
r @ twilio-flex.unbundled-react.min.js:207
t.tryInvokeAction @ twilio-flex.unbundled-react.min.js:207
t.onClick @ twilio-flex.unbundled-react.min.js:207
onClick @ twilio-flex.unbundled-react.min.js:207
callCallback @ react-dom.development.js:3942
invokeGuardedCallbackDev @ react-dom.development.js:3991
invokeGuardedCallback @ react-dom.development.js:4053
invokeGuardedCallbackAndCatchFirstError @ react-dom.development.js:4067
executeDispatch @ react-dom.development.js:8273
processDispatchQueueItemsInOrder @ react-dom.development.js:8305
processDispatchQueue @ react-dom.development.js:8318
dispatchEventsForPlugins @ react-dom.development.js:8329
(anonymous) @ react-dom.development.js:8538
batchedEventUpdates$1 @ react-dom.development.js:22426
batchedEventUpdates @ react-dom.development.js:3742
dispatchEventForPluginEventSystem @ react-dom.development.js:8537
attemptToDispatchEvent @ react-dom.development.js:6035
dispatchEvent @ react-dom.development.js:5954
unstable_runWithPriority @ react.development.js:2764
runWithPriority$1 @ react-dom.development.js:11306
discreteUpdates$1 @ react-dom.development.js:22443
discreteUpdates @ react-dom.development.js:3753
dispatchDiscreteEvent @ react-dom.development.js:5919Understand this error
twilio-flex.unbundled-react.min.js:207 Uncaught Error: no active call
    at new n (twilio-flex.unbundled-react.min.js:207:6461573)
    at e.createAndProcessError (twilio-flex.unbundled-react.min.js:207:6464687)
    at twilio-flex.unbundled-react.min.js:207:6590127

排查与解决步骤

  • 验证任务与通话状态同步逻辑
    Flex接起按钮默认绑定的AcceptTask动作需要任务关联的通话处于active状态。试用账户跨区域路由可能导致任务状态更新与通话建立存在延迟,可通过监听Task对象的status和callSid属性,确认接起动作触发时通话已完成建立。

  • 检查Flex插件版本兼容性
    确认使用的Flex UI SDK版本与React示例项目依赖版本匹配。部分旧版本SDK在跨区域场景下存在状态同步bug,尝试升级至最新稳定版(如@twilio/flex-ui@2.x系列),同时同步更新相关依赖包。

  • 调整任务路由的事件触发时机
    在Studio流程中,确保Connect Agent组件的"Wait for agent to accept"选项设置正确,避免任务过早派发给Agent导致通话未就绪。可添加短暂延迟(如1-2秒)后再触发任务推送,给通话建立留足时间。

  • 禁用自动AcceptTask的重复触发
    即使未主动调用AcceptTask,插件或Flex内置逻辑可能因状态监听异常重复触发该动作。可通过自定义拦截器,在任务状态为reserved且通话未就绪时,阻止AcceptTask动作执行:

    import { Actions } from '@twilio/flex-ui';
    
    Actions.addListener('beforeAcceptTask', (payload, abort) => {
      const { task } = payload;
      if (task.attributes.callStatus !== 'ringing' && task.attributes.callStatus !== 'active') {
        abort('Call not ready yet');
      }
    });
    
  • 试用账户区域限制适配
    英国地区试用账户可能存在Twilio媒体资源区域限制,可在Flex控制台的"Voice Settings"中,将媒体区域手动指定为eu-west-1(爱尔兰),尽管官方标注暂不支持,但部分场景下可解决跨区域状态同步问题。

  • 忽略非致命错误(临时方案)
    由于关闭错误提示后不影响通话功能,可通过自定义错误处理器拦截no active call错误,避免弹窗干扰:

    import { ErrorManager } from '@twilio/flex-ui';
    
    ErrorManager.addListener('beforeError', (error) => {
      if (error.message.includes('no active call')) {
        return false; // 阻止错误弹窗
      }
      return true;
    });
    

内容的提问来源于stack exchange,提问作者Martyn Bedford

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 11:45:55