Webhook调用失败:DialogFlow v2实现中的URL_REJECTED错误

Dre*_*tin 5 google-cloud-platform dialogflow-es dialogflow-es-fulfillment

错误说明

调用DialogFlow v2 detectIntentAPI后,我们会随机收到状态代码为13的内部错误:

Webhook呼叫失败。没有HTTP状态代码的提取失败。状态:状态:URL_REJECTED原因:67

该错误似乎是随机发生的。相同的请求可以成功或失败。有趣的是,自2019年8月23日(星期五)以来,该服务一直在恶化,直到今天几乎所有电话都无法通过。

我们的调查

URL_REJECTED互联网上的DialogFlow或Google 根本找不到任何东西。

但是我们在此页面上找到了状态码13的含义:

内部错误。这意味着基础系统期望的一些不变式已被破坏。该错误代码保留用于严重错误。

我们还检查了我们是否没有禁止Google IP,是否没有弄乱我们的负载平衡(我们想到了这一点,因为随机失败会很有意义)。

Webhook已启动并正在运行,我们可以自己调用它。该问题似乎发生在Google的基础设施中,错误代码13似乎显示出来。

Dre*_*tin 6

(我之所以立即回答,是因为我们在发布问题之前已将其修复。但是我还是发布了,因为它可能对其他人有用)

问题是使用http调用了Webhook 。设置https解决了该问题。

Google似乎激活了拒绝其服务器中不安全呼叫的webhook策略。它可能已逐渐部署在他们的集群上,这可以解释其逐步退化的原因。

我们知道我们应该早就迁移到https,但是在网上仍然没有提及此政策的应用。