# Fix: ENOTFOUND Database Hostname Error

## Problem
You're seeing: `ENOTFOUND db.mycttyevrycmkhlvwgfk.supabase.co`

This means the hostname cannot be resolved. Common causes:
1. Project is paused in Supabase
2. Using wrong connection string format
3. Need to use Pooler connection instead

## Solution 1: Use Connection Pooler (RECOMMENDED)

Supabase provides a connection pooler that's more reliable:

1. **Go to Supabase Dashboard** → Settings → Database
2. **Find "Connection Pooling" section**
3. **Select "Transaction" mode** (or "Session" if you need transactions)
4. **Copy the connection string** - it will look like:
   ```
   postgresql://postgres:[YOUR-PASSWORD]@mycttyevrycmkhlvwgfk.pooler.supabase.com:6543/postgres
   ```
   OR
   ```
   postgresql://postgres:[YOUR-PASSWORD]@mycttyevrycmkhlvwgfk.pooler.supabase.com:5432/postgres
   ```

5. **Update your `.env` file:**
   ```env
   DATABASE_URL=postgresql://postgres:your_password@mycttyevrycmkhlvwgfk.pooler.supabase.com:6543/postgres
   ```

**Key differences:**
- Uses `.pooler.supabase.com` instead of `db.xxx.supabase.co`
- Port is usually `6543` (transaction mode) or `5432` (session mode)
- More reliable for serverless/cloud deployments

## Solution 2: Check Project Status

1. Go to Supabase Dashboard
2. Check if your project shows as "Paused" or "Inactive"
3. If paused, click "Restore" to reactivate it
4. Wait a few minutes for DNS to propagate
5. Try connecting again

## Solution 3: Use Supabase Client Instead

If direct connection doesn't work, use Supabase client:

1. **Get your API keys:**
   - Go to Supabase Dashboard → Settings → API
   - Copy:
     - **Project URL**: `https://mycttyevrycmkhlvwgfk.supabase.co`
     - **service_role key** (secret)

2. **Update your `.env` file:**
   ```env
   # Remove or comment out DATABASE_URL
   # DATABASE_URL=...

   # Add Supabase client config
   SUPABASE_URL=https://mycttyevrycmkhlvwgfk.supabase.co
   SUPABASE_SERVICE_KEY=your_service_role_key_here
   ```

3. **Restart server**

## Solution 4: Verify Connection String Format

Make sure your connection string has the correct format:

**Direct connection (if project is active):**
```
postgresql://postgres:password@db.project-ref.supabase.co:5432/postgres
```

**Pooler connection (recommended):**
```
postgresql://postgres:password@project-ref.pooler.supabase.com:6543/postgres
```

**Common mistakes:**
- ❌ Missing `postgresql://` prefix
- ❌ Wrong port (should be 5432 or 6543)
- ❌ Missing password brackets `[password]` should be replaced with actual password
- ❌ Using `db.` prefix with pooler (pooler doesn't use `db.`)

## Quick Test

After updating your `.env` file, test the connection:

```bash
cd backend
npm run dev
```

You should see:
```
✅ Database connection successful (PostgreSQL direct)
```

Or:
```
✅ Database connection successful (Supabase)
```

## Still Not Working?

1. **Check your network/firewall** - Make sure port 5432 or 6543 is not blocked
2. **Try pinging the hostname:**
   ```bash
   ping mycttyevrycmkhlvwgfk.pooler.supabase.com
   ```
3. **Verify project is active** in Supabase Dashboard
4. **Check Supabase status page** for any outages
5. **Contact Supabase support** if project appears active but connection fails

