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

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;
      }
      

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),确保部署后函数能正确读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 23:32:58