Тайм-аут запроса для вызовов API в рабочей среде в приложении NextJS

У меня есть критическая проблема в моем приложении NextJS, из-за которой все запросы к моим API-маршрутам истекают в рабочей среде. До недавнего времени оно работало отлично, но теперь мое приложение непригодно для использования (за исключением статической целевой страницы). Он отлично работает в моей локальной среде.

Я использую NextJS 14.0.1 с App Router; МонгоДБ + Мангуст

Вот журналы по времени из простой конечной точки /api/lead (создайте интерес в БД)

// app/api/leads/route.js

import { NextResponse } from "next/server";
import connectMongo from "@/libs/mongoose";
import Lead from "@/models/Lead";

export async function POST(req) {
  console.time("MongoDB Connection");
  await connectMongo();
  console.timeEnd("MongoDB Connection");

  console.time("Request JSON Parsing");
  const body = await req.json();
  console.timeEnd("Request JSON Parsing");

  if (!body.email) {
    return NextResponse.json({ error: "Email is required" }, { status: 400 });
  }

  try {
    console.time("Finding Lead");
    const lead = await Lead.findOne({ email: body.email });
    console.timeEnd("Finding Lead");

    if (!lead) {
      console.time("Creating Lead");
      await Lead.create({ email: body.email });
      console.timeEnd("Creating Lead");
    }

    console.time("Sending Response");
    const response = NextResponse.json({});
    console.timeEnd("Sending Response");
    return response;
  } catch (e) {
    console.error("Database operation failed", e);
    console.time("Sending Error Response");
    const errorResponse = NextResponse.json(
      { error: e.message },
      { status: 500 }
    );
    console.timeEnd("Sending Error Response");
    return errorResponse;
  }
}

  • Соединение MongoDB: 880,541 мс
  • Парсинг запроса JSON: 0,913 мс
  • Поиск зацепки: 556,57 мс
  • Отправка ответа: 1,31 мс

При получении этого сообщения через почтальона мне все равно требуется > 10 секунд, чтобы получить ответ. Таймаут по умолчанию в Netlify/Vercel происходит через 10 секунд.

Скриншот журналов Netlify

В консоли браузера ошибок нет, проверка запроса на вкладке «Сеть» тоже не помогает.

Что я сделал до сих пор:

  • Проверены все недавние коммиты на наличие соответствующих изменений (ничего).
  • Сбросьте основную ветку до предыдущего коммита и разверните ее, чтобы проверить, работает ли она (не сработало)
  • Подключение к производственной БД из локальной среды -> Работает без проблем.
  • Пробовал использовать приложение через туннель https ngrok локально -> Работает.
  • Проверено, что это влияет только на запросы, которые запускают операцию с базой данных.
  • Пытался развернуть как на Vercel, так и на Netlify -> та же проблема.
  • Добавлены журналы по времени для всех операций внутри конечной точки для измерения времени выполнения -> см. ниже.
  • Запустил новый кластер MongoDB и подключился к этому новому экземпляру -> Та же проблема.

Есть идеи, в чем здесь может быть проблема? У меня закончились идеи.

Редактировать: Вот дополнительный журнал по времени

🤔 А знаете ли вы, что...
MongoDB обладает активным сообществом разработчиков и богатой документацией...


273
1

Ответ:

Решено

Изучив множество возможных проблем, мне удалось устранить ошибку, обновив все мои зависимости и удалив Posthog. Похоже, у библиотеки возникла проблема с одной из зависимостей. Не знаю, почему ошибка привела только к сбою приложения в рабочей среде, но ладно. Надеюсь, это сэкономит кому-то еще несколько часов в будущем.