Из-за чего при build проекта на Next js ошибка TypeError: fetch failed ([cause]: ConnectTimeoutError: Connect Timeout Error)?
Ссылка скопирована
По вводным:, подскажите, есть проект на Next js 14.2.3. С вот такими роутами:
app/(routes)/(catalog)/foo/[...slug]/page.jsx app/(routes)/(catalog)/bar/[...slug]/page.jsx app/(routes)/(catalog)/test/[...slug]/page.jsx
По вводным: внутри каждого компонента одинаковая логика генерации, но почему-то при npm run build на сервере падают много таких вот ошибок:
TypeError: fetch failed at node:internal/deps/undici/undici:12500:13 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Module.w ([MASKED]//.next/server/app/(routes)/(catalog)/foo/[...slug]/page.js:1:7994) { digest: '1853411761', [cause]: ConnectTimeoutError: Connect Timeout Error at onConnectTimeout (node:internal/deps/undici/undici:6621:28) at node:internal/deps/undici/undici:6573:50 at Immediate._onImmediate (node:internal/deps/undici/undici:6605:13) at process.processImmediate (node:internal/timers:478:21) at process.callbackTrampoline (node:internal/async_hooks:130:17) { code: 'UND_ERR_CONNECT_TIMEOUT' } }
По вводным: компонент у меня вот такой:
import React, {Suspense} from "react"; import {notFound} from "next/navigation"; export async function generateMetadata({params}) { let info = (process.env.NODE_ENV === 'development') ? {cache: 'no-store'} : {}; if (params.slug) { const path = `${process.env.API_URL}/path/${params.slug.join('/')}?type=foo` const res = await fetch(path, info) if (res.ok) { const instance = await res.json() return { title: instance?.data?.title, description: instance?.data?.description, robots: { index: instance?.data?.index, follow: instance?.data?.follow, } } } } return { title: '', description: '', } } export async function generateStaticParams() { let result = []; let info = (process.env.NODE_ENV === 'development') ? {cache: 'no-store'} : {}; for (let l = 1; l <= 3; l++) { const path = `${process.env.API_URL}/path/l/${l}` const res = await fetch(path, info) const items = await res.json() let r = items.map(elem => { return { slug: elem.url.split("/") } }) result = [...result, ...r] } return result } export default async function Page({params, searchParams}) { let items = []; let info = (process.env.NODE_ENV === 'development') ? {cache: 'no-store'} : {next: {revalidate: 120}}; const {slug} = params const page = Math.max(1, Number(searchParams?.page ?? 1)) const res = await fetch(`${process.env.API_URL}/path/s/${slug.join('/')}?type=foo`, info) if (!res.ok) { return notFound(); } const instance = await res.json() if (instance?.data) { const resEx = await fetch(buildUrl(instance?.data, {page}), {next: {revalidate: 120}}) if (!resEx.ok) { return notFound(); } items = await resEx.json() } return ( <> ... </>); }
По вводным: fetch делает запросы к бэкенд сервису, я в логах php-fpm видел что он в момент билда пытается увеличитьpm.max_children settingНужно понять: возможно не хватает на сервер ресурсов?
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопросВам также может быть интересно
VPN
Как правильно настроить vless для Android TV?
0 ответов
Pyrogram
Как правильно зарегистрировать юзер бота в Telegram?
0 ответов
печатные-платы
Как заставить запускаться программу M3.exe от компании Hanxing AOI в инспекционной машине на Windows 7 Pro?
0 ответов
VPN
Почему подключение через VPN работает только на wi-fi, а через кабель нет, где ошибка?
0 ответов
