Hi guys, I’m new to strapi but keep getting a
at async file:///vercel/path0/dist/chunks/prerender_z0pSUssE.mjs:614:21
at async Object.render (file:///vercel/path0/dist/chunks/astro_4VOd5ehm.mjs:1572:7)
at async Object.renderToFinalDestination (file:///vercel/path0/dist/chunks/astro_4VOd5ehm.mjs:866:7)
at async renderChild (file:///vercel/path0/dist/chunks/astro_4VOd5ehm.mjs:1059:5)
Caused by:
other side closed
at TLSSocket.onSocketEnd (node:internal/deps/undici/undici:7998:26)
at endReadableNT (node:internal/streams/readable:1368:12)
Error: Command "npm run build" exited with 1
Error when building my site. Strapi doesn’t seem to throw any errors. Trying to work out whether this is a Strapi or a Vercel error.
It only happens occasionally and if I reploy a few times it works eventually, so I’m guessing it’s not a code error.
The fetch code is.
interface Props {
endpoint: string;
query?: string;
wrappedByKey?: string;
wrappedByList?: boolean;
}
/**
* Fetches data from the Strapi API
* @param endpoint - The endpoint to fetch from
* @param query - The query parameters to add to the URL
* @param wrappedByKey - The key to unwrap the response from
* @param wrappedByList - If the response is a list, unwrap it
* @returns
*/
export default async function fetchApi<T>({
endpoint,
query,
wrappedByKey,
wrappedByList,
}: Props): Promise<T> {
try {
if (endpoint.startsWith('/')) {
endpoint = endpoint.slice(1);
}
const url = new URL(`${import.meta.env.STRAPI_URL}/api/${endpoint}`);
const queryString = query ? `?${query}` : '';
const urlWithQuery = `${url.toString()}${queryString}`;
const res = await fetch(urlWithQuery, {
method: "GET",
headers: {
Authorization: `Bearer ${import.meta.env.STRAPI_KEY}`,
"Content-Type": "application/json",
},
});
if (!res.ok) {
throw new Error(`HTTP error! Status: ${res.status}`);
}
let data = await res.json();
if (wrappedByKey) {
data = data[wrappedByKey];
}
if (wrappedByList) {
data = data[0];
}
return data as T;
} catch (error) {
// Handle errors here
console.error("Error fetching data:", error);
throw error; // Rethrow the error
}
}