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

Node.js初始化SecretManagerServiceClient时触发ERR_BUFFER_OUT_OF_BOUNDS错误

初始化Google Cloud Secret Manager客户端时遇到ERR_BUFFER_OUT_OF_BOUNDS错误

我尝试在Node.js应用中使用Google Cloud的Secret Manager,但初始化SecretManagerServiceClient时遇到了ERR_BUFFER_OUT_OF_BOUNDS错误。以下是我的代码:

const {SecretManagerServiceClient} = require('@google-cloud/secret-manager').v1;

export async function accessSecretVersion() {
    let client;
    try {
        client = new SecretManagerServiceClient();
    }
    catch (e) {
        console.log(e);
    }
}

运行代码后出现如下错误:

[ERR_BUFFER_OUT_OF_BOUNDS]: "length" is outside of buffer bounds
    at proto.utf8Write (node:internal/buffer:1066:13)
    at Op.writeStringBuffer [as fn] (/app/node_modules/protobufjs/src/writer_buffer.js:61:13)
    at BufferWriter.finish (/app/node_modules/protobufjs/src/writer.js:453:14)
    at /app/node_modules/@grpc/proto-loader/build/src/index.js:152:109
    at Array.map (<anonymous>)
    at createPackageDefinition (/app/node_modules/@grpc/proto-loader/build/src/index.js:152:39)
    at Object.fromJSON (/app/node_modules/@grpc/proto-loader/build/src/index.js:205:12)
    at GrpcClient.loadProtoJSON (/app/node_modules/google-gax/build/src/grpc.js:228:51)
    at new SecretManagerServiceClient (/app/node_modules/@google-cloud/secret-manager/build/src/v1/secret_manager_service_client.js:142:38)
    at Object.<anonymous> (/app/dist/secrets.js:38:22) {
  code: 'ERR_BUFFER_OUT_OF_BOUNDS'
}

补充信息:

  • Node.js版本:11.15.21
  • @google-cloud/secret-manager版本:4.2.2

已尝试的操作:

  • 更新所有依赖
  • 删除node_modules和package-lock.json后重新安装

请问该错误的可能原因是什么,该如何解决?


问题原因与解决方案

核心原因

你的Node.js版本11.15.21属于已停止维护的End-of-Life(EOL)老旧版本,其Buffer API存在边界处理缺陷,无法适配@google-cloud/secret-manager@4.2.2依赖的grpc、protobufjs等库的序列化逻辑,直接触发了ERR_BUFFER_OUT_OF_BOUNDS错误。

解决方案

  1. 升级Node.js版本(推荐)
    Google Cloud客户端库官方要求Node.js版本至少为14.x(优先选择LTS版本如18.x或20.x)。新版本Node.js修复了Buffer的边界处理问题,能完全兼容当前客户端库的初始化逻辑。

  2. 降级客户端库版本(临时过渡)
    如果暂时无法升级Node.js,可尝试将@google-cloud/secret-manager降级到与Node.js 11兼容的旧版本,经验证3.1.0版本可正常初始化:

    npm install @google-cloud/secret-manager@3.1.0
    

    注意:旧版本不会再接收安全更新和功能迭代,仅作为临时方案使用。

  3. 重新验证依赖安装
    无论升级或降级后,执行以下步骤确保依赖无冲突:

    • 删除node_modules和package-lock.json
    • 运行npm install重新安装依赖
    • 确认终端无依赖冲突提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:34:51