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

Google Home Action解锁成功但测试套件失败、助手无响应排查

Google Home Action 解锁成功但提示无响应问题修复方案

核心问题定位

该故障属于响应被Google侧判定无效、触发30秒状态轮询超时的典型场景,结合给出的响应内容,按以下优先级排查即可:

  • 修复agentUserId字段类型错误:当前返回的agentUserId是数字类型11424,Google Smart Home API强制要求该字段为字符串类型。对应故障出现的两个月前节点,Google正好上线了该字段的强校验规则:弱校验阶段数字类型可以正常解析,强校验后会直接丢弃整个响应,不会读取返回的SUCCESS状态和isLocked=false的结果,直到轮询超时拉取到旧的锁状态,就会抛出看到的断言错误。直接将该字段改为字符串格式即可:"agentUserId": "11424"。
  • 校验响应HTTP头合规性:确保fulfillment接口返回EXECUTE响应时,状态码为200 OK,Content-Type头为application/json; charset=UTF-8,不要返回3xx重定向、204无内容、4xx/5xx错误状态码,否则Google会判定未收到有效响应,进入轮询等待流程。
  • 排查QUERY接口状态一致性:Google不会完全信任EXECUTE响应中携带的states值,收到SUCCESS响应后会主动发起QUERY请求拉取设备最新状态做二次校验。如果QUERY接口读取的是有延迟的缓存、或者状态同步逻辑有问题,返回了isLocked=true的旧值,就会直接触发状态不匹配的报错。可以拉取fulfillment服务的全量访问日志,确认报错时间点收到的QUERY请求返回值是否和实际锁状态一致,有延迟的话给锁状态更新加实时同步逻辑即可。
  • 校验requestId匹配规则:确保响应中携带的requestId和Google发来的EXECUTE请求中的requestId完全一致,不要自行生成新的requestId,否则Google无法将响应和原请求关联,会判定请求超时无响应。

验证方法

修复完成后重新跑测试套件:

  1. 确认EXECUTE请求响应时间保持在4秒左右,所有字段类型、格式符合规范
  2. 确认Google后续发起的QUERY请求返回的isLocked值为false
  3. 测试用例不再出现30秒等待后失败的问题

内容的提问来源于stack exchange,提问作者Smart TTLock

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 12:45:30