# 故障排查

> 从 502、Prisma 到 AI 400/524、Radar 0 分的真实问题

# 32. 最常见故障排查

## 32.1 网站 502

```bash
pm2 status
pm2 logs graduate-os --lines 200
curl -I http://127.0.0.1:3000/login
```

判断：

```text
PM2 offline → Node / 构建 / 环境变量
PM2 online 但本机3000失败 → 应用问题
本机3000正常但域名502 → Nginx反代问题
```

## 32.2 PM2 报 next start / standalone

错误思路：

```text
next start
```

正确：

```text
node .next/standalone/server.js
```

最终 `ecosystem.config.cjs` 已修好，不要改回去。

## 32.3 `Cannot find module 'server-only'`

最终包已经修复依赖。

先：

```bash
npm ci
npm ls server-only --depth=0
```

如果使用的不是最终整合包，旧版本才可能需要手工安装。

## 32.4 后台提示 `请先配置 SECRET_ENCRYPTION_KEY`

确认 `.env`：

```dotenv
SECRET_ENCRYPTION_KEY="64位十六进制字符串"
```

确认最终 `ecosystem.config.cjs` 未被旧文件覆盖。

重启：

```bash
pm2 restart graduate-os --update-env
pm2 save
```

## 32.5 中转站测试显示认证失败，但 Key 确定正确

先直接强制 IPv4 测试：

```bash
curl -4 -i "https://你的中转域名/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer 你的测试Key" \
  -d '{"model":"你的模型ID","messages":[{"role":"user","content":"Reply only with OK."}],"max_tokens":16}'
```

如果 IPv4 200，而普通请求 403 Cloudflare，说明是 IPv6/WAF。

最终 PM2 已内置 IPv4-first。

测试 Key 用完后如果曾公开展示，应该作废并换新。

## 32.6 AI 400 Invalid schema

最终版已经修复。

若仍出现：

```text
检查是否覆盖了最新 lib/ai/* / lib/papers/*
重新 npm run build
重新 pm2 restart graduate-os --update-env
```

## 32.7 AI 524 / timeout

最终版会尝试精简/分块并最终返回失败状态。

如果仍失败：

```text
中转站拥堵或模型响应过慢
稍后重试
先用短 PDF 验证
```

## 32.8 页面一直显示 AI 分析中

最终版每 3 秒轮询。

如果仍不变：

```bash
pm2 logs graduate-os --lines 120
```

并确认浏览器已加载最新 build（Ctrl+F5）。

## 32.9 Radar 全部 0 分

先检查研究档案是否为空：

```text
设置 → 研究档案
```

研究方向/关键词没有填写时，AI 无法正确判断相关性。

## 32.10 Radar 结果很多但不相关

使用更精确组合词，不要单独搜索：

```text
wood
honeycomb
compression
```

推荐：

```text
"wood honeycomb" "out-of-plane compression"
```

## 32.11 PDF 413

Nginx：

```text
client_max_body_size 50m
```

`.env`：

```dotenv
MAX_PDF_SIZE_MB="40"
```

## 32.12 登录循环

确认：

```dotenv
APP_URL="https://你的正式域名"
```

Nginx 必须传：

```nginx
proxy_set_header X-Forwarded-Proto $scheme;
```

`SESSION_SECRET` 不能每次重启改变。

---
