-
Notifications
You must be signed in to change notification settings - Fork 30.2k
Description
Link to the code that reproduces this issue
https://codesandbox.io/p/devbox/gifted-shirley-mzlvgy?file=%2Fapp%2Fapi%2Froute.js%3A1%2C1-39%2C1
To Reproduce
- From a client-side component, start a fecth POST request to an API endpoint (route handler) on form submission;
- On an API serverless function realise another fetch POST request to an external API (in my case I used Slack message API);
- On a production environment hosted on Vercel, around 70% of the requests to Slack are working while another 30% fail returning 500 server error code "UND_ERR_CONNECT_TIMEOUT".
Systems:
- Next.js v14.1.4
- Errors happen in both Pages and App Router
- Could only reproduce on a Prod environment hosted on Vercel
- Serverless function running node v20x
- Requests to external APIs from a client component work fine. Only serverless functions error out
- Slack API is working fine. Tested on other pure React apps and Postman and had no errors at all
- Problem seems to happen only on external API calls (tested Mailchimp as well and failed less times than Slack but still failing);
Full error message:
Unhandled Rejection: TypeError: fetch failed at node:internal/deps/undici/undici:12345:11 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) { cause: ConnectTimeoutError: Connect Timeout Error at onConnectTimeout (node:internal/deps/undici/undici:7492:28) at node:internal/deps/undici/undici:7448:50 at Immediate._onImmediate (node:internal/deps/undici/undici:7480:13) at process.processImmediate (node:internal/timers:478:21) at process.callbackTrampoline (node:internal/async_hooks:130:17) { code: 'UND_ERR_CONNECT_TIMEOUT' } } Node.js process exited with exit status: 128. The logs above can help with debugging the issue.
Current vs. Expected behavior
Currently some external API calls from a serverless function are returning unhandled fetch errors.
Expected behaviour is no errors being returned and API call succeeding.
Provide environment information
Operating System:
Vercel Servers
Binaries:
Node: v20x (default vercel v20 setting)
npm: 10.2.3
yarn: 1.22.19
build command: yarn build
Relevant Packages:
next: 14.1.4
react: 18.2.0
react-dom: 18.2.0
Next.js Config:
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
trailingSlash: true,
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'site.com',
port: '',
pathname: '/wp-content/uploads/**',
},
],
},
}
module.exports = nextConfig;Which area(s) are affected? (Select all that apply)
Module Resolution, Pages Router, Runtime
Which stage(s) are affected? (Select all that apply)
Vercel (Deployed)
Additional context
Additional information about the issue and more cases can be found at this discussion:
#57384