postmaster.pid 🐘 PostgreSQL

FATAL: lock file "postmaster.pid" already exists — Is another postmaster running in data directory?

PostgreSQL won’t start because a stale postmaster.pid file remains (or another instance really is running).

Seen on: PostgreSQL

Meaning

After a crash or unclean shutdown (common with Homebrew on macOS), the PID file stays behind.

Common causes

  • Unclean shutdown/crash
  • Another PostgreSQL instance using the same data directory

⚡ Quick fix

  1. Make sure no postgres process is running (ps aux | grep postgres)
  2. Then delete the stale postmaster.pid and start again

Detailed fix by platform

Linux

  1. brew services stop postgresql@16 && rm /opt/homebrew/var/postgresql@16/postmaster.pid && brew services start postgresql@16

How to diagnose

  1. Process — Is postgres running?
  2. PID — Does the PID in the file exist?

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.