# Chat Assistant Troubleshooting Guide

## Common Errors and Solutions

### Error: 500 Internal Server Error

This usually indicates one of the following issues:

#### 1. Ollama Not Running

**Symptoms:**
- 500 error on `/api/v1/chat`
- Error message mentions "connection" or "refused"

**Solution:**
```bash
# Check if Ollama is running in the container
docker exec be0 ps aux | grep ollama

# If not running, restart the container
docker-compose restart be0

# Or start Ollama manually
docker exec be0 ollama serve &
```

#### 2. Model Not Available

**Symptoms:**
- Error mentions "model not found"
- Model name mismatch

**Solution:**
```bash
# Check available models
docker exec be0 ollama list

# Pull the required model
docker exec be0 ollama pull gemma3:270M

# Verify model is available
docker exec be0 ollama list | grep gemma3
```

#### 3. Model Name Mismatch

**Issue:** Code uses `gemma3:27b` but entrypoint pulls `gemma3:270M`

**Solution:**
The code has been updated to use `gemma3:270M` to match the entrypoint script.

#### 4. Network Connectivity

**Symptoms:**
- Connection refused errors
- Timeout errors

**Solution:**
```bash
# Check if Ollama is accessible from within the container
docker exec be0 curl http://localhost:11434/api/tags

# Check Ollama service status
docker exec be0 ollama list
```

## Diagnostic Endpoints

### Health Check
```bash
curl http://localhost:4402/health
```

This will show:
- Overall service status
- Ollama connection status
- Available models

### Test Ollama Directly
```bash
# From inside the container
docker exec be0 ollama run gemma3:270M "Hello"
```

## Debugging Steps

1. **Check Backend Logs:**
   ```bash
   docker-compose logs be0 | tail -50
   ```

2. **Check Chat Assistant Logs:**
   ```bash
   tail -f be0/logs/ChatAssistant.log
   ```

3. **Test API Endpoint:**
   ```bash
   curl -X POST http://localhost:4402/api/v1/chat \
     -H "Content-Type: application/json" \
     -d '{"message": "Hello"}'
   ```

4. **Verify Ollama Service:**
   ```bash
   docker exec be0 ollama list
   docker exec be0 curl http://localhost:11434/api/tags
   ```

## Common Fixes

### Fix 1: Restart Ollama Service
```bash
docker exec be0 pkill ollama
docker exec be0 ollama serve &
sleep 2
docker exec be0 ollama list
```

### Fix 2: Pull Missing Model
```bash
docker exec be0 ollama pull gemma3:270M
```

### Fix 3: Restart Container
```bash
docker-compose restart be0
```

### Fix 4: Rebuild Container
```bash
docker-compose down
docker-compose build be0
docker-compose up be0
```

## Expected Behavior

When working correctly:
1. Health endpoint shows Ollama as "connected"
2. Available models list includes `gemma3:270M`
3. Chat endpoint returns 200 with a response
4. Logs show successful message processing

## Still Having Issues?

1. Check the full error in logs: `docker-compose logs be0`
2. Verify Ollama is running: `docker exec be0 ps aux | grep ollama`
3. Test Ollama directly: `docker exec be0 ollama run gemma3:270M "test"`
4. Check model availability: `docker exec be0 ollama list`
