Vercel部署时Serverless函数崩溃:Runtime exited error: exit status 1
解决Vercel部署whatsapp-web.js+Ably项目时Serverless函数崩溃(exit status 1)的问题
以下是针对这类崩溃问题的常见排查方向和解决方案:
1. 无头浏览器环境缺失
whatsapp-web.js依赖Puppeteer启动无头浏览器,本地环境自带Chrome/Chromium,但Vercel Serverless容器没有预装,这是最常见的崩溃原因。
- 解决方案:
- 安装适配Serverless环境的
chrome-aws-lambda和puppeteer-core依赖:npm install chrome-aws-lambda puppeteer-core - 修改whatsapp-web.js的客户端初始化代码,指定使用适配环境的浏览器:
const { Client, LocalAuth } = require('whatsapp-web.js'); const puppeteer = require('puppeteer-core'); const chrome = require('chrome-aws-lambda'); async function initClient() { const client = new Client({ authStrategy: new LocalAuth(), puppeteer: { executablePath: await chrome.executablePath, args: [...chrome.args, '--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage'], headless: chrome.headless } }); // 后续的client事件监听逻辑 return client; }
- 安装适配Serverless环境的
2. Serverless函数超时限制
Vercel Serverless函数默认执行超时为10秒,而whatsapp-web.js的初始化(扫码验证、会话加载)往往需要更长时间,超时后进程会被强制终止,触发exit status 1。
- 解决方案:
- 登录Vercel控制台,进入项目的Settings > Functions,将函数超时时间调整到最大值90秒;
- 优化会话管理:使用
RemoteAuth将会话存储到Ably或Redis等远程服务,避免每次部署都重新扫码初始化,大幅缩短启动时间。
3. 环境变量未正确配置
本地的Ably API密钥等环境变量配置正确,但Vercel部署时未同步设置,导致Ably客户端初始化失败,引发进程崩溃。
- 解决方案:
- 在Vercel项目的Settings > Environment Variables中添加所有需要的变量(如
ABLY_API_KEY),确保部署后函数能正确读取。
- 在Vercel项目的Settings > Environment Variables中添加所有需要的变量(如
4. 本地文件系统权限限制
whatsapp-web.js的LocalAuth会生成本地会话文件,但Vercel Serverless环境的临时文件系统权限有限,且部署后文件会被清空,无法持久化会话,进而引发错误。
- 解决方案:
- 改用
RemoteAuth替代LocalAuth,将会话数据存储到Ably或其他远程存储服务; - 若必须使用
LocalAuth,指定Vercel允许的临时目录:const { Client, LocalAuth } = require('whatsapp-web.js'); const os = require('os'); const path = require('path'); const client = new Client({ authStrategy: new LocalAuth({ dataPath: path.join(os.tmpdir(), 'whatsapp-sessions') }) });
- 改用
5. Node.js版本不兼容
本地使用的Node.js版本与Vercel部署环境的版本不一致,可能导致whatsapp-web.js、Ably等依赖包运行出错。
- 解决方案:
- 在项目根目录创建
.nvmrc文件,指定与本地一致的Node.js版本(如18); - 进入Vercel项目的Settings > General,确认Node.js版本设置与
.nvmrc一致。
- 在项目根目录创建
内容的提问来源于stack exchange,提问作者Tarequl Islam
相关产品推荐
相关产品推荐

