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

App Engine部署Spring Boot报缺少OAuth2访问凭证错误

问题场景
  • 项目为定位API服务的App Engine后端应用,已稳定运行1年,此前部署流程无异常
  • 故障从某次部署前一日开始出现,部署的新版本与2个月前可正常运行的版本相比几乎无代码变更,部署后日志持续输出固定错误,进而触发连锁报错
  • 已尝试多轮服务账号配置调整,问题未解决,暂无明确排查思路
  • 项目为纯后端服务,无前端组件,为Android、iOS端提供API服务,对接MySQL数据库,已实现基于JWT令牌的身份认证逻辑,查阅Web应用OAuth身份认证相关文档后,未找到适配纯后端场景的对应配置方案
核心报错日志

初始根因报错

报错来自Cloud Debugger Java探针,请求GCE元数据服务获取默认服务账号令牌时返回500错误,为所有后续报错的触发点:

{
  "textPayload": "java.io.IOException: Server returned HTTP response code: 500 for URL: http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token\n\tat java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1924)\n\tat java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)\n\tat com.google.devtools.cdbg.debuglets.java.GceMetadataQuery.readResponse(Unknown Source)\n\tat com.google.devtools.cdbg.debuglets.java.GceMetadataQuery.queryMetadataAttribute(Unknown Source)\n\tat com.google.devtools.cdbg.debuglets.java.GceMetadataQuery.lazyQueryAccessToken(Unknown Source)\n\tat com.google.devtools.cdbg.debuglets.java.GceMetadataQuery.getAccessToken(Unknown Source)\n\tat com.google.devtools.cdbg.debuglets.java.GcpHubClient.openConnection(Unknown Source)\n\tat com.google.devtools.cdbg.debuglets.java.GcpHubClient.registerDebuggee(Unknown Source)",
  "insertId": "62b07762000723c9146921dc",
  "resource": {
    "type": "gae_app",
    "labels": {
      "version_id": "20220620t152333",
      "module_id": "default",
      "zone": "europe-west2-3",
      "project_id": "family-gift-174ff"
    }
  },
  "timestamp": "2022-06-20T13:34:26.467913Z",
  "severity": "ERROR",
  "labels": {
    "clone_id": "00c61b117c2cc69d1d383473699b064aeebb51ac76765d2c519588a83959e70d06404d5c7072810a3875ad50b8b30b42120cb49fc83ed242292e"
  },
  "logName": "projects/family-gift-174ff/logs/%2Fvar%2Flog%2Fcdbg_java_agent.localhost.www-data.log.INFO.20220620-133415.10",
  "receiveTimestamp": "2022-06-20T13:34:26.635895729Z"
}

一级连锁报错

因无法获取有效访问令牌,探针向Cloud Debugger服务注册调试实例时返回401未授权错误:

{
  "textPayload": "java.io.IOException: Server returned HTTP response code: 401 for URL: https://clouddebugger.googleapis.com/v2/controller/debuggees/register\n\tat java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1924)\n\tat java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)\n\tat java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:250)\n\tat com.google.devtools.cdbg.debuglets.java.GcpHubClient.registerDebuggee(Unknown Source)",
  "insertId": "62b0776200072f646724c018",
  "resource": {
    "type": "gae_app",
    "labels": {
      "zone": "europe-west2-3",
      "version_id": "20220620t152333",
      "module_id": "default",
      "project_id": "family-gift-174ff"
    }
  },
  "timestamp": "2022-06-20T13:34:26.470884Z",
  "severity": "ERROR",
  "labels": {
    "clone_id": "00c61b117c2cc69d1d383473699b064aeebb51ac76765d2c519588a83959e70d06404d5c7072810a3875ad50b8b30b42120cb49fc83ed242292e"
  },
  "logName": "projects/family-gift-174ff/logs/%2Fvar%2Flog%2Fcdbg_java_agent.localhost.www-data.log.INFO.20220620-133415.10",
  "receiveTimestamp": "2022-06-20T13:34:26.635895729Z"
}

二级衍生报错

探针初始化阻塞拖慢应用启动流程,进而触发数据库连接池初始化失败等更多业务层错误:

java.sql.SQLNonTransientConnectionException: Could not create connection to database server.
  at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) ~[mysql-connector-java-8.0.25.jar!/:8.0.25]
  // 其余堆栈省略,后续存在大量同类关联报错
排查与解决方案

此前调整服务账号配置的排查方向存在偏差,前两类报错与业务代码逻辑、自行实现的JWT认证、面向Web应用的OAuth配置无关联,属于Google Cloud平台侧组件初始化异常引发的连锁问题,按以下优先级处理:

  • 优先验证根因:在App Engine配置文件app.yaml中添加环境变量CDBG_DISABLE=1,临时禁用Cloud Debugger Java探针后重新部署。若部署后探针相关的两类报错消失,数据库连接大概率同步恢复。该类问题最常见的诱因是部署对应时段europe-west2区域的GCE元数据服务临时故障,导致探针初始化逻辑阻塞,抢占业务启动资源、拖慢启动流程,连带数据库连接池初始化超时失败。
  • 若禁用探针后元数据服务500错误仍存在,核查App Engine默认服务账号状态:确认项目下{project-id}@appspot.gserviceaccount.com服务账号未被误禁用、误删除,且绑定了App Engine default service account基础角色,无需额外配置前端类OAuth参数。
  • 数据库连接异常属于启动流程阻塞导致的衍生问题,无需单独调整数据库连接参数,解决探针初始化、元数据服务访问异常后,连接逻辑会自动恢复。
  • 若确认为平台侧元数据服务临时故障导致的问题,待平台故障恢复后,移除CDBG_DISABLE配置项重新部署,即可恢复Cloud Debugger的正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:27:45