使用Named Credentials的Salesforce定时调用失败:JSON解析器输入为空
Salesforce定时调用Named Credentials触发「Scheduled Callout Failed」及JSON解析空指针的问题分析
可能的触发原因
- 外部API返回空响应:定时任务发起调用后,外部服务因故障、超时或权限问题,返回了无内容的响应体(比如500错误、401/403且无body),代码直接将空值传入JSON解析方法导致空指针。
- Named Credentials配置异常:比如认证协议(如OAuth2)配置错误、权限不足,导致请求未成功发送或被拦截,最终没有获取到有效响应体。
- 代码逻辑缺失:定时任务代码中未对
HttpResponse.getBody()的返回值做非空校验,直接调用JSON.deserialize/JSON.deserializeUntyped等解析方法,空输入触发异常。
为何会触发JSON解析
- 业务代码显式依赖JSON解析:你的定时任务逻辑中,明确预期外部API返回JSON格式数据,因此编写了JSON解析代码来处理响应体。
- 隐式的框架/工具类解析:若使用了封装的集成工具类,或者Named Credentials的认证流程(如OAuth2获取token)中,内部逻辑会默认解析JSON格式的响应,当响应为空时触发异常。
内容的提问来源于stack exchange,提问作者user1883212
相关产品推荐
相关产品推荐

