Slik fikser du intern feil 500 i Next.js Server Components
Fiks Next.js Server Component 500-feil ved å spore serverlogger, sjekke datahenting og miljøvariabler, håndtere feil og verifisere produksjonsbygget.
Hvis PostgreSQL sier “connection refused” på localhost:5432, er det første du må fikse tilgjengelighet, ikke passordet. Kjør pg_isready -h localhost -p 5432. Hvis den rapporterer no response, er PostgreSQL vanligvis stoppet, lytter på en annen port eller adresse, kjører i et annet miljø som Docker, eller feiler under oppstart. Hvis den rapporterer accepting connections, er serveren tilgjengelig, og du bør slutte å behandle problemet som et port-nektelsesproblem og i stedet undersøke den neste feilmeldingen.
PostgreSQL bruker TCP-port 5432 som standard, og den gjeldende PostgreSQL 18-dokumentasjonen sier at listen_addresses er satt til localhost som standard. Per 11. september 2026 er PostgreSQL 18 den gjeldende stabile hovedutgivelsen, med PostgreSQL 18.6 utgitt 13. august 2026; PostgreSQL 19 Beta 3 er fortsatt en utviklingsutgivelse. Feilsøkingstrinnene nedenfor gjelder generelt for støttede PostgreSQL-versjoner, men pakenavn, tjenestenavn og filplasseringer varierer etter operativsystem og installasjonsprogram. Se den offisielle kunngjøringen for PostgreSQL 18.6 og dokumentasjonen for gjeldende tilkoblingsinnstillinger.

Begynn med den nøyaktige feilteksten. Flere PostgreSQL-tilkoblingsfeil høres like ut, men peker på ulike lag i stabelen.
| Meldingsmønster | Hva det vanligvis forteller deg | Hvor du bør se videre |
|---|---|---|
connection refused | TCP-tilkoblingen nådde ikke en PostgreSQL-lytter på den adressen og porten | Serverprosess, port, bindadresse, containermapping, lokalt nettverk |
timeout expired eller ingen respons | Nettverksbanen ga ikke en rettidig respons | Feil vert, brannmur, container/VM-grense, server utilgjengelig |
password authentication failed | Du nådde PostgreSQL og autentisering startet | Bruker, passord, autentiseringsmetode |
no pg_hba.conf entry | Du nådde PostgreSQL, men ingen matchende klientautentiseringsregel tillot forsøket | pg_hba.conf |
database ... does not exist | Serveren er tilgjengelig og autentiseringen gikk langt nok til å identifisere databasforespørselen | Databasenavn og tilkoblingsstreng |
Denne distinksjonen forhindrer en vanlig omvei: å redigere passord eller pg_hba.conf mens ingenting lytter på port 5432. Disse innstillingene betyr noe etter at en tilkobling har nådd PostgreSQL-serveren.
pg_isready er PostgreSQLs eget verktøy for tilkoblingsstatus. Kjør:
pg_isready -h localhost -p 5432
PostgreSQL dokumenterer fire avslutningsstatusser: 0 når serveren aksepterer tilkoblinger, 1 når den avslår tilkoblinger, 2 når det ikke er noen respons, og 3 når det ikke ble gjort noe gyldig forsøk. Du trenger ikke et riktig databasenavn, brukernavn eller passord bare for å få den grunnleggende serverstatusen. Se den offisielle pg_isready-referansen.

Hvis du får:
localhost:5432 - accepting connections: port 5432 er tilgjengelig. Prøv din virkelige psql- eller applikasjonstilkobling og feilsøk den nye meldingen hvis den feiler.localhost:5432 - rejecting connections: serveren svarte, men aksepterer ikke normale tilkoblinger ennå, noe som kan skje under oppstart eller gjenoppretting. Sjekk serverloggen og vent hvis oppstarten legitimt er i gang.localhost:5432 - no response: fortsett med server- og lytterkontrollene nedenfor.Test også 127.0.0.1 eksplisitt:
pg_isready -h 127.0.0.1 -p 5432
Hvis 127.0.0.1 fungerer, men localhost ikke gjør det, er problemet mer sannsynlig relatert til navneløsning eller IPv4/IPv6-binding enn at PostgreSQL er helt nede.
Hvis du installerte PostgreSQL via et operativsystemspakke eller installasjonsprogram, bruk den normale tjenestestyringsmekanismen for den pakken. PostgreSQLs egen dokumentasjon anbefaler å bruke den pakkede oppstartsinfrastrukturen når den er tilgjengelig, i stedet for å finne på en separat oppstartsmetode.
Hvis du administrerer klyngen direkte og kjenner dens datakatalog, gir PostgreSQL pg_ctl:
pg_ctl status -D /path/to/data
pg_ctl start -D /path/to/data -l /path/to/postgresql.log
Verdien for -D må peke til riktig PostgreSQL datakatalog, som er katalogen for den databasaklyngen. Hvis PGDATA er konfigurert, kan pg_ctl bruke den i stedet. Den offisielle pg_ctl-dokumentasjonen beskriver status, start, restart og reload.

Åpne Tjenester og se etter PostgreSQL-tjenesten opprettet av installasjonsprogrammet ditt. Hvis den er stoppet, start den. Hvis flere PostgreSQL-versjoner er installert, verifiser at du starter instansen assosiert med datakatalogen og porten applikasjonen din forventer.
Pakenavn varierer mellom distribusjoner. En pakkert installasjon kan eksponere en systemtjeneste som postgresql eller en versjons-/klyngespesifikk enhet. Bruk tjenestedefinisjonen for pakken i stedet for å anta ett universelt tjenestenavn.
Den riktige oppstartsmekanismen avhenger av om PostgreSQL kom fra en app-bundle, Homebrew, MacPorts, kildekode eller en annen pakke. Samme prinsipp gjelder: start instansen fra mekanismen som opprettet den, og kjør pg_isready på nytt.
Hvis serveren stopper umiddelbart igjen, ikke fortsett å starte den på nytt. Inspekter oppstartloggen. En dårlig konfigurasjonsverdi, utilgjengelig datakatalog, portkonflikt, manglende fil eller gjenopprettingsproblem kan hindre PostgreSQL i å forbli oppe.
En kjørende PostgreSQL-prosess er ikke nok hvis den er bundet til en annen port eller kun til en Unix-domensokkel. Sjekk operativsystemets lyttertabell.

ss -ltnp | grep 5432
lsof -nP -iTCP:5432 -sTCP:LISTEN
Get-NetTCPConnection -LocalPort 5432 -State Listen
Hvis det ikke er noen lytter, kjører ikke PostgreSQL, bruker en annen port, er bundet et annet sted, eller startet ikke. Hvis et annet program eier 5432, kan PostgreSQL være udestandig til å binde den porten. Sjekk PostgreSQLs oppstartlogg før du bestemmer deg for å stoppe den andre prosessen eller flytte PostgreSQL til en annen port.
Hvis du bevisst konfigurerte PostgreSQL på 5433, må klienten din bruke 5433:
psql -h localhost -p 5433 -U postgres
Ikke “fiks” en bevisst ikke-standardport ved å endre PostgreSQL tilbake til 5432 med mindre det faktisk er din ønskede arkitektur.
PostgreSQLs listen_addresses-innstilling styrer hvilke TCP/IP-grensesnitt som aksepterer tilkoblingsforsøk. Den dokumenterte standarden er localhost. port-innstillingen er 5432 som standard. Begge innstillingene anvendes ved serverstart, så endringer krever en serveromstart.

For en strengt lokal utviklingsdatabase ser de relevante innstillingene vanligvis slik ut:
listen_addresses = 'localhost'
port = 5432
Hvis listen_addresses er en tom streng, lytter ikke PostgreSQL på noen IP-grensesnitt, og kun Unix-domensokler kan brukes der de støttes. Omvendt ber listen_addresses = '*' PostgreSQL om å lytte på alle tilgjengelige grensesnitt; det er vanligvis unødvendig for en lokal utviklingsdatabase og kan øke eksponeringen hvis autentisering og brannmureregler ikke er designet for ekstern tilgang.
Hvis du kan koble til via en Unix-domensokkel, men TCP på localhost feiler, spør den aktive serveren for å finne de aktive filene og innstillingene:
SHOW config_file;
SHOW hba_file;
SHOW listen_addresses;
SHOW port;
Dette er tryggere enn å redigere den første postgresql.conf du finner, spesielt på en maskin med flere klynger eller PostgreSQL-versjoner. PostgreSQL støtter konfigurasjonsfiler utenfor datakatalogen, så filbaner er ikke universelle. Se den offisielle dokumentasjonen for konfigurasjonsfilplasseringer.
Container-nettverk endrer betydningen av vertsnavnet. Dette er en av de vanligste årsakene til at en database er sunn mens en applikasjon fortsatt får connection refused.
PostgreSQL-containeren trenger en publisert vertsport. En Compose-tjeneste kan inneholde:
services:
db:
image: postgres:18
ports:
- "5432:5432"
Da kan en klient som kjører på verten din bruke:
postgresql://postgres:YOUR_PASSWORD@localhost:5432/YOUR_DB
Inne i applikasjonscontaineren refererer localhost til selve applikasjonscontaineren, ikke databasecontaineren. Docker Compose gir DNS for tjenestenavn, så hvis databasetjenesten er navngitt db, kobler applikasjonen seg vanligvis til:
postgresql://postgres:YOUR_PASSWORD@db:5432/YOUR_DB
Dockers offisielle Compose-nettverksdokumentasjon skiller eksplisitt mellom container-til-container-tjenestenavnet og vertens publiserte port. For eksempel, hvis du mapper 8001:5432, bruker containere fortsatt db:5432, mens verten bruker localhost:8001. Se Dockers offisielle Compose-nettverksguide.
Før du redigerer PostgreSQL selv, sjekk:
docker compose ps
docker compose logs db
Hvis containeren starter på nytt, er loggen vanligvis mer verdifull enn å endre tilkoblingsstrenger gjentatte ganger.

For en klient og server på samme maskin, begynn ikke med å åpne port 5432 for alle nettverk. Bekreft først at PostgreSQL lytter lokalt. En bred brannmureregel kan skape unødvendig eksponering uten å fikse en stoppet server.
Brannmurundersøkelse blir mer relevant når:
listen_addresses for å tillate ikke-loopback-tilkoblinger.Hvis ekstern tilgang er bevisst, begrens de tillatte kildenettverkene og autentiseringsreglene til det som faktisk er nødvendig. At port 5432 er tilgjengelig fra alle steder er ikke en forutsetning for en lokal applikasjon.
pg_hba.conf styrer PostgreSQL-klientautentisering. En host-post gjelder for TCP/IP-tilkoblinger. Den forårsaker ikke at en stoppet server begynner å lytte, så den er vanligvis feil første fiks for connection refused.
Når pg_isready rapporterer at serveren aksepterer tilkoblinger, kan en autentiseringsfeil legitimt lede deg til pg_hba.conf. For localhost TCP-tilkoblinger er regler vanligvis avgrenset til loopback-adresser som 127.0.0.1/32 og ::1/128, med databasen, rollen og autentiseringsmetoden valgt for ditt miljø.
PostgreSQL 18 setter password_encryption til scram-sha-256 som standard, og dokumentasjonen merker MD5-krypterte passord som utfaset. Unngå å kopiere gamle autentiseringseksempler blindt. Se den gjeldende pg_hba.conf-dokumentasjonen og gjeldende autentiseringsinnstillinger.
På Unix-lignende systemer kan endringer i pg_hba.conf lastes inn på nytt med pg_ctl reload eller SELECT pg_reload_conf();. PostgreSQL dokumenterer en Windows-spesifikk forskjell: endringer i pg_hba.conf anvendes på påfølgende nye tilkoblinger uten samme SIGHUP-krav.

Når pg_isready sier at serveren aksepterer tilkoblinger, test den samme banen applikasjonen din forventer:
psql -h localhost -p 5432 -U postgres -d postgres
En vellykket psql-prompt forteller deg mye mer enn “tjenesten kjører”: den bekrefter at en ekte PostgreSQL-klient nådde serveren og besto tilkoblings- og autentiseringsfasene for disse parameterne.
Hvis psql fungerer, men applikasjonen din fortsatt rapporterer connection refused, sammenlign applikasjonskonfigurasjonen tegn for tegn:
Et vanlig eksempel er en lokal terminal som bruker localhost:5432 vellykket, mens en Dockerisert webapp også bruker localhost:5432. Webappen ringer da seg selv, ikke databasetjenesten. I det tilfellet er det å endre containerens databasevert til Compose-tjenestenavnet den relevante fiksen.
Hvis tjenesten starter og umiddelbart avsluttes, er nettverksfeilen bare et symptom. Oppstartloggen er der PostgreSQL forklarer hvorfor den ikke kunne bli klar.
Se etter meldinger om:
postgresql.conf-syntaksHvis du starter en direkte administrert klynge med pg_ctl, anbefaler PostgreSQL å fange serveroutput, for eksempel med -l logfile. Prosjektets dokumentasjon for serveroppstart forklarer hvorfor oppstartoutput er nyttig for diagnose.

| Situasjon | Mest nyttige første sjekk | Sannsynlig retning |
|---|---|---|
| Fersk lokal installasjon; 5432 nekter | pg_isready -h localhost -p 5432 | Tjenesten har kanskje ikke startet eller bruker en annen port |
| Fungererte i går; maskinen startet på nytt | Tjenestestatus og PostgreSQL-logg | Tjenesten startet ikke automatisk eller oppstarten feiler nå |
psql på verten fungerer; Docker-app feiler | Undersøk app-tilkoblingsverten | Bruk Compose-tjenestenavnet i stedet for localhost inne i containeren |
Unix-sokkel fungerer; -h localhost feiler | SHOW listen_addresses; og SHOW port; | TCP-lytter er deaktivert eller bundet annerledes |
| 5432 har en lytter, men det er ikke PostgreSQL | Identifiser prosessen som eier porten | Løs portkonflikten eller bruk PostgreSQLs konfigurerte port |
| Feilen endret seg til passordfeil | Slutt å endre nettverksinnstillinger | Tilgjengelighet er fikset; feilsøk autentisering |
Feilen endret seg til no pg_hba.conf entry | Gå gjennom matchende HBA-regler | Tilgjengelighet er fikset; feilsøk klientautorisasjon |
Dette kan gjøre PostgreSQL tilgjengelig fra ytterligere grensesnitt, men det er ikke nødvendig for en normal localhost-tilkobling på samme maskin. Det kan også utvide eksponeringen. Bruk den smaleste bindingen som samsvarer med arkitekturen din.
En brannmurunntak kan ikke få en stoppet PostgreSQL-prosess til å lytte. Bekreft lytteren først, legg deretter kun til nettverkstilgangen du faktisk trenger.
Passordautentisering skjer etter at klienten nådde PostgreSQL. Hvis TCP-tilkoblingen nektes, adresserer endring av passordet vanligvis feil lag.
Maskiner med flere installasjoner kan inneholde flere konfigurasjonsfiler. Bruk en fungerende lokal sokkeltilkobling og SHOW config_file; når mulig, eller identifiser datakatalogen til serverprosessen du faktisk intenderte å kjøre.
5432 er standarden, ikke et krav. Hvis den tiltenkte klyngen din er konfigurert for 5433 og alle klienter bruker 5433, er det gyldig. Konsistens betyr mer enn å tvinge standarden.
Du bør slutte å jobbe med “connection refused” spesifikt når pg_isready rapporterer aksepterende tilkoblinger eller psql når en autentiserings-/databasefeil. På det tidspunktet gjør nettverkslytteren jobben sin, og å fortsette å endre porter, brannmureregler eller listen_addresses kan introdusere nye problemer.
På samme måte, hvis PostgreSQL ikke kan starte, skift fra klientbasert feilsøking til serveroppstartsdiagnose. Hvis en container kontinuerlig starter på nytt, gå til containerloggen. Hvis en vertsklient fungerer, men en containerklient feiler, gå til container-DNS og portmapping. Det nyttige spørsmålet er ikke “Hvilken PostgreSQL-innstilling bør jeg veksle?” men “På hvilket lag stopper tilkoblingen å gjøre fremdrift?”
Du kan betrakte localhost-tilgjengelighetsproblemet som fikset når alle følgende er sanne for miljøet du faktisk bruker:
pg_isready -h localhost -p 5432 rapporterer accepting connections, eller den rapporterer den ekvivalente vert/porten du bevisst konfigurerte.psql kan nå serveren ved å bruke samme nettverksbane som applikasjonen.connection refused.Grensen for denne prosedyren er viktig: den diagnostiserer om en PostgreSQL-server kan nås på den forventede verten og porten. Den kan ikke alene fikse et ugyldig passord, manglende rolle, manglende database, SQL-feil, skjemaproblem eller applikasjonsfeil i tilkoblingspoolen. Disse blir relevante først etter at tilkoblingen kommer forbi nektelsesfasen.
For de fleste localhost-tilfeller er den korteste veien fortsatt den samme: test 5432 med pg_isready, bekreft at den tiltenkte PostgreSQL-instansen kjører, verifiser lytteren, og endre konfigurasjonen først deretter. Den rekkefølgen holder feilsøkingen fokusert og reduserer sjansen for å gjøre et enkelt stoppet-tjeneste-problem til et større nettverks- eller sikkerhetsproblem.
Fiks Next.js Server Component 500-feil ved å spore serverlogger, sjekke datahenting og miljøvariabler, håndtere feil og verifisere produksjonsbygget.
Diagnostiser og fiks Kubernetes CrashLoopBackOff i lokal Minikube ved å sjekke pod-tilstand, tidligere logger, avslutningsårsaker, prober, konfigurasjon, minsegrenser og klusterhelse.
Fiks Docker Desktop-motoren som stopper på Windows 11 ved å sjekke Docker-status, oppdatere og starte WSL 2 på nytt, verifisere virtualisering og bruke diagnostikk før nullstilling.
Løs Vite-feilen 'process is not defined' ved å erstatte Node-stil bruk av process.env, konfigurere VITE_-variabler riktig og sjekke avhengigheter.
Løs PyTorch CUDA out-of-memory-feil med en praktisk arbeidsflyt: mål GPU-minne, reduser arbeidssettet, bruk AMP og akkumulering, sjekkpoint-aktiveringer, og juster allokatoren kun ved behov.
Fiks manglende Access-Control-Allow-Origin CORS-feil i Express.js ved å diagnostisere opprinnelsen, konfigurere cors trygt, håndtere preflight og verifisere headers.
Fiks React-feilen “Cannot read properties of undefined (reading 'map')” ved å spore opp den udefinerte verdien, korrigere state og API-data, og legge til sikre gjengivelseskontroller.
Løs Webpack-feilen «Can’t resolve 'fs'» ved å velge riktig løsning: flytt Node-kun-kode til serveren, bruk en nettlesersikker avhengighet, sett fs:false kun hvis valgfritt, eller mål mot Node riktig.
Fiks manglende Supabase API-nøkler i Next.js, Vite, Node, utplasseringer og Edge Functions. Bruk gjeldende navn på publiserbare/secret-nøkler, korrekte env-filer og trygge verifiseringstrinn.
Løs feilen “flutter: command not found” på macOS ved å finne Flutter SDK, legge til bin-mappen i PATH, laste inn Zsh på nytt og verifisere oppsettet.