EADDRINUSE(端口已被占用)
含义: 应用尝试将同一个网络端口绑定两次。 发生原因: 代码中启动了两个服务器,或者某个监听器/app.listen(...) 调用在事件处理程序内部被再次创建(例如每次请求或每次重新连接时),而不是只在启动时创建一次。
如何修复:
- 只绑定一个 web 服务器,且只绑定一次,监听端口
80。 - 在代码中查找是否有多个
.listen()(Node)或run()(Python/Flask/Django)调用,并删除多余的那个。 - 确保 listen 调用位于启动文件的顶层,而不是在可能多次触发的回调内部。
Square Cloud 的动态应用必须绑定到主机
0.0.0.0 和端口 80。绑定到 localhost/127.0.0.1 或其他端口会导致站点超时,而不是正常启动。“Cannot find module”(Node.js)和 ModuleNotFoundError(Python)
含义: 代码中引入的某个包在依赖文件中缺失。 发生原因: 该库未列在package.json 的 dependencies(Node)或 requirements.txt/pyproject.toml(Python)中,因此即使在你本机可以运行,平台上也不会安装它。
如何修复:
- 将缺失的包及有效版本号添加到依赖文件中。
- 确认依赖文件本身已包含在你上传的
.zip中。 - 重启应用。对于 Node.js,彻底重装需要先清除
node_modules(删除它和package-lock.json,然后重启),这样平台才会从干净的状态重新安装。
INVALID_DEPENDENCY
含义: 部署失败,因为依赖文件中的某一项不存在,或指向了一个无效/不可用的版本。 如何修复: 打开package.json / requirements.txt / pyproject.toml,修正被标记条目中拼写错误的包名或版本范围,然后重新部署。
CONTAINER_TEMPORARILY_SUSPENDED
含义: 容器被平台暂停。 发生原因: 该状态由自动资源滥用防护触发,最常见的情况有:- OOM(内存不足): 应用尝试超出其配置的
MEMORY,进程被终止。 - CPU 滥用: 应用持续超出其分配的 CPU,进程为保护节点而被暂停。
- 请求滥用: 触发了针对
.squareweb.app域名或消息类 API(Discord、Telegram、WhatsApp)流量的安全上限,这几乎总是由无限循环或缺失缓存导致,而非真实的高人气。
KEEP_CALM
含义: 某个与 snapshot 相关的操作被请求得过于频繁。 发生原因: 要么你(或某个自动化流程)在平台短暂的 snapshot 请求冷却时间结束前再次请求了 snapshot,要么该账户当前套餐的每日 snapshot 上限已达到。请注意这与DAILY_SNAPSHOTS_LIMIT_REACHED 不同,后者专门标记套餐的每日配额已耗尽:KEEP_CALM 也可能在较短的单应用请求冷却期内触发,与每日计数无关。
如何修复: 等待几分钟后重试。如果是达到了每日上限,请等到第二天,或升级套餐以获得更高的自动 snapshot 额度。
better-sqlite3 / 原生绑定错误
含义: 当你的应用使用better-sqlite3(直接使用,或通过 quick.db)时出现类似 Could not locate the bindings file 的错误。
发生原因: 已安装的 better-sqlite3 版本早于平台当前的 Node.js LTS 版本,因此其预编译的原生绑定与运行时不匹配。
如何修复:
- 将
better-sqlite3更新到12.5.0或更高版本(如果你使用quick.db,请将其更新到9.1.7或更高版本)。 - 删除
node_modules和package-lock.json。 - 重启应用以进行干净的重新安装,从而针对当前运行时重新构建原生绑定。
LACK_OF_RAM
含义: 应用超出了其分配的 RAM,或内核发出了内存不足信号,进程被终止以保护宿主机的稳定性。 如何修复:- 使用性能分析工具查找内存泄漏(Node.js:
--inspect,Python:memory_profiler)。 - 将内存中的缓存迁移到 Redis 或其他外部存储,而不是让进程内缓存/Map 无限增长。
- 在控制面板中增加分配给你应用的
MEMORY值。

