Plaid调用/accounts/balances/get返回ITEM_LOGIN_REQUIRED错误每小时复现
调用
/accounts/balances/get接口周期性返回ITEM_LOGIN_REQUIRED错误修复方案 报错详情:
{ display_message: null, error_code: 'ITEM_LOGIN_REQUIRED', error_message: 'the login details of this item have changed (credentials, MFA, or required user action) and a user login is required to update this information. use Link\'s update mode to restore the item to a good state', error_type: 'ITEM_ERROR', request_id: 'redacted', suggested_action: null }错误中文释义:当前关联的银行项目登录信息已变更(含登录凭证、多因素认证或要求用户操作的场景),需用户重新登录更新信息,可通过Link更新模式恢复项目的可用状态
根因定位
排除银行侧变更的前提下,该问题100%出现在本地access_token更新流程的缺陷上:你通过更新模式拿到的不是长期有效的正式令牌,只是有效期为1小时的临时会话授权,因此超时后会自动触发登录要求报错。
排查项
- 检查更新模式调用逻辑,是否在用户未完成全部授权操作(含可能的多因素认证步骤)的情况下,提前截取了临时令牌作为正式
access_token存储 - 核对所有
access_token存储、读取逻辑,是否存在旧令牌缓存未清理、部分业务场景仍然读取旧值的问题 - 确认你使用的接口版本与开发者控制台配置的版本一致,旧版本接口存在更新流程完成后仍返回短时效令牌的兼容性Bug
- 验证更新令牌后是否调用了
/item/get接口校验项目状态,若项目状态未变更为good,说明更新流程未走完,拿到的令牌仅为临时授权
修复步骤
- 调整更新模式的回调逻辑,必须等
onSuccess事件触发后再提取返回的新access_token,禁止中途中断流程取临时值 - 拿到新令牌后先调用
/item/get接口确认项目状态为正常,再全量替换所有存储、缓存中的旧令牌值 - 清理所有本地、服务端的
access_token缓存,避免新旧令牌混用 - 若上述操作完成后问题仍复现,可在开发者控制台提交工单,附上报错中的
request_id申请官方核查对应项目的状态异常记录
内容的提问来源于stack exchange,提问作者user12457151
相关产品推荐
相关产品推荐

