diff --git a/src/main.server.ts b/src/main.server.ts index be4bd8edf70..6a4d7a2fa5d 100644 --- a/src/main.server.ts +++ b/src/main.server.ts @@ -7,6 +7,8 @@ import 'reflect-metadata'; */ import '@angular/localize/init'; +import { setDefaultResultOrder } from 'node:dns'; + import { bootstrapApplication, BootstrapContext, @@ -15,6 +17,12 @@ import { import { AppComponent } from './app/app.component'; import { serverAppConfig } from './modules/app/server-app.config'; +// Apply DNS resolution order fix for Node.js 17+ by preferring IPv4 over IPv6. +// This fixes "ECONNREFUSED ::1:8080" errors in PM2 cluster mode when +// the backend only listens on IPv4 +// See https://github.com/DSpace/dspace-angular/issues/4960 +setDefaultResultOrder('ipv4first'); + const bootstrap = (context: BootstrapContext) => bootstrapApplication(AppComponent, serverAppConfig, context); export default bootstrap;