home / skills / yoanbernabeu / grepai-skills / grepai-troubleshooting

grepai-troubleshooting skill

/skills/advanced/grepai-troubleshooting

This skill guides you through diagnosing and fixing common GrepAI issues, improving search reliability and indexing efficiently.

npx playbooks add skill yoanbernabeu/grepai-skills --skill grepai-troubleshooting

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
7.1 KB
---
name: grepai-troubleshooting
description: Troubleshooting guide for GrepAI. Use this skill to diagnose and fix common issues.
---

# GrepAI Troubleshooting

This skill provides solutions for common GrepAI issues and diagnostic procedures.

## When to Use This Skill

- GrepAI not working as expected
- Search returning poor results
- Index not updating
- Connection or configuration errors

## Quick Diagnostics

Run these commands to understand your setup:

```bash
# Check GrepAI version
grepai version

# Check project status
grepai status

# Check Ollama (if using)
curl http://localhost:11434/api/tags

# Check config
cat .grepai/config.yaml
```

## Common Issues

---

### Issue: "Index not found"

**Symptom:**
```
Error: Index not found. Run 'grepai watch' first.
```

**Cause:** No index has been created for this project.

**Solution:**
```bash
# Initialize if needed
grepai init

# Create the index
grepai watch
```

---

### Issue: "Cannot connect to embedding provider"

**Symptom:**
```
Error: Cannot connect to Ollama at http://localhost:11434
```

**Causes:**
1. Ollama not running
2. Wrong endpoint configured
3. Firewall blocking connection

**Solutions:**

1. Start Ollama:
```bash
ollama serve
```

2. Check endpoint in config:
```yaml
embedder:
  endpoint: http://localhost:11434  # Verify this
```

3. Test connection:
```bash
curl http://localhost:11434/api/tags
```

---

### Issue: "Model not found"

**Symptom:**
```
Error: Model 'nomic-embed-text' not found
```

**Cause:** The embedding model hasn't been downloaded.

**Solution:**
```bash
# Download the model
ollama pull nomic-embed-text

# Verify
ollama list
```

---

### Issue: Search returns no results

**Symptom:** Searches return empty or very few results.

**Causes:**
1. Index is empty
2. Files are being ignored
3. Query too specific

**Solutions:**

1. Check index status:
```bash
grepai status
# Should show files > 0 and chunks > 0
```

2. Verify files are being indexed:
```bash
# Check ignore patterns in config
cat .grepai/config.yaml | grep -A 20 "ignore:"
```

3. Try broader query:
```bash
grepai search "function"  # Very broad test
```

---

### Issue: Search returns irrelevant results

**Symptom:** Results don't match what you're looking for.

**Causes:**
1. Query too vague
2. Boosting not configured
3. Wrong content indexed

**Solutions:**

1. Improve query (see `grepai-search-tips` skill):
```bash
# Bad
grepai search "auth"

# Good
grepai search "user authentication middleware"
```

2. Configure boosting to penalize tests:
```yaml
search:
  boost:
    enabled: true
    penalties:
      - pattern: /tests/
        factor: 0.5
```

3. Check what's indexed:
```bash
grepai status
```

---

### Issue: Index is outdated

**Symptom:** Recent file changes aren't appearing in search results.

**Causes:**
1. Watch daemon not running
2. Debounce delay
3. File not in indexed extensions

**Solutions:**

1. Check daemon status:
```bash
grepai watch --status
```

2. Restart daemon:
```bash
grepai watch --stop
grepai watch --background
```

3. Force re-index:
```bash
rm .grepai/index.gob
grepai watch
```

---

### Issue: "Config not found"

**Symptom:**
```
Error: Config file not found at .grepai/config.yaml
```

**Cause:** GrepAI not initialized in this directory.

**Solution:**
```bash
grepai init
```

---

### Issue: Slow indexing

**Symptom:** Initial indexing takes very long.

**Causes:**
1. Large codebase
2. Slow embedding provider
3. Not enough ignore patterns

**Solutions:**

1. Add ignore patterns:
```yaml
ignore:
  - node_modules
  - vendor
  - dist
  - build
  - "*.min.js"
```

2. Use faster model:
```yaml
embedder:
  model: nomic-embed-text  # Smaller, faster
```

3. Use OpenAI for speed (if privacy allows):
```yaml
embedder:
  provider: openai
  model: text-embedding-3-small
  parallelism: 8
```

---

### Issue: Slow searches

**Symptom:** Search queries take several seconds.

**Causes:**
1. Very large index
2. GOB storage on large codebase
3. Embedding provider slow

**Solutions:**

1. Check index size:
```bash
ls -lh .grepai/index.gob
```

2. For large indices, use Qdrant:
```yaml
store:
  backend: qdrant
```

3. Limit results:
```bash
grepai search "query" --limit 5
```

---

### Issue: Trace not finding symbols

**Symptom:** `grepai trace callers` returns no results.

**Causes:**
1. Function name spelled wrong
2. Language not enabled for trace
3. Symbols index out of date

**Solutions:**

1. Check exact function name (case-sensitive)

2. Enable language in config:
```yaml
trace:
  enabled_languages:
    - .go
    - .js
    - .ts
```

3. Re-build symbol index:
```bash
rm .grepai/symbols.gob
grepai watch
```

---

### Issue: MCP not working

**Symptom:** AI assistant can't use GrepAI tools.

**Causes:**
1. MCP config incorrect
2. GrepAI not in PATH
3. Working directory wrong

**Solutions:**

1. Test MCP server manually:
```bash
grepai mcp-serve
```

2. Check GrepAI is in PATH:
```bash
which grepai
```

3. Verify MCP config:
```bash
# Claude Code
cat ~/.claude/mcp.json

# Cursor
cat .cursor/mcp.json
```

---

### Issue: Out of memory

**Symptom:** GrepAI crashes or system becomes slow.

**Causes:**
1. Large embedding model
2. Very large index in GOB format
3. Too many parallel requests

**Solutions:**

1. Use smaller model:
```yaml
embedder:
  model: nomic-embed-text  # Smaller
```

2. Use PostgreSQL or Qdrant instead of GOB

3. Reduce parallelism:
```yaml
embedder:
  parallelism: 2
```

---

### Issue: API key errors (OpenAI)

**Symptom:**
```
Error: 401 Unauthorized - Invalid API key
```

**Solutions:**

1. Check environment variable:
```bash
echo $OPENAI_API_KEY
```

2. Ensure variable is exported:
```bash
export OPENAI_API_KEY="sk-..."
```

3. Check key format in config:
```yaml
embedder:
  api_key: ${OPENAI_API_KEY}  # Uses env var
```

---

## Diagnostic Commands

### Full System Check

```bash
#!/bin/bash
echo "=== GrepAI Diagnostics ==="

echo -e "\n1. Version:"
grepai version

echo -e "\n2. Status:"
grepai status

echo -e "\n3. Config:"
cat .grepai/config.yaml 2>/dev/null || echo "No config found"

echo -e "\n4. Index files:"
ls -la .grepai/ 2>/dev/null || echo "No .grepai directory"

echo -e "\n5. Ollama (if using):"
curl -s http://localhost:11434/api/tags | head -5 || echo "Ollama not responding"

echo -e "\n6. Daemon:"
grepai watch --status 2>/dev/null || echo "Daemon not running"
```

### Reset Everything

If all else fails, complete reset:

```bash
# Remove all GrepAI data
rm -rf .grepai

# Re-initialize
grepai init

# Start fresh index
grepai watch
```

## Getting Help

If issues persist:

1. Check GrepAI documentation: https://yoanbernabeu.github.io/grepai/
2. Search issues: https://github.com/yoanbernabeu/grepai/issues
3. Create new issue with:
   - GrepAI version (`grepai version`)
   - OS and architecture
   - Config file (remove secrets)
   - Error message
   - Steps to reproduce

## Output Format

Diagnostic summary:

```
šŸ” GrepAI Diagnostics

Version: 0.24.0
Project: /path/to/project

āœ… Config: Found (.grepai/config.yaml)
āœ… Index: 245 files, 1,234 chunks
āœ… Embedder: Ollama (connected)
āœ… Daemon: Running (PID 12345)
āŒ Issue: [Description if any]

Recommended actions:
1. [Action item]
2. [Action item]
```

Overview

This skill is a practical troubleshooting guide for GrepAI that helps diagnose and fix common installation, indexing, embedding, and search issues. It provides step-by-step commands, likely causes, and targeted solutions to get GrepAI back to a usable state. Use it to speed up recovery from configuration, connectivity, or performance problems.

How this skill works

The skill inspects common failure points: index presence and status, embedding provider connectivity (Ollama or OpenAI), configuration files, daemon/watch state, and symbol indexes. It recommends concrete CLI checks and corrective commands such as grepai init, grepai watch, ollama serve, model pulls, and index rebuild steps. It also includes diagnostic scripts and reset instructions for full recovery.

When to use it

  • When GrepAI reports "Index not found" or shows zero files/chunks
  • When searches return no results or irrelevant results
  • When embedding provider (Ollama/OpenAI) fails to connect
  • When indexing or search performance is slow or consumes too much memory
  • When MCP or trace features fail to locate symbols or integrate with assistants

Best practices

  • Run quick diagnostics: grepai version, grepai status, and cat .grepai/config.yaml
  • Keep embedder models small for limited memory and use Qdrant/Postgres for large indices
  • Add ignore patterns (node_modules, build, dist) to speed initial indexing
  • Verify Ollama or OpenAI endpoints and API keys before indexing
  • Restart the watch daemon and force re-index when symbols or files are out of date

Example use cases

  • Fix an empty search by running grepai init and grepai watch to build an index
  • Resolve Ollama connectivity by starting ollama serve and testing curl http://localhost:11434/api/tags
  • Recover from an outdated symbol index by removing .grepai/symbols.gob and restarting the watcher
  • Improve relevance by configuring search boosting and excluding test directories
  • Reduce memory use by switching to a smaller embedder model or changing backend to qdrant

FAQ

What if grepai watch is stuck or the daemon won't start?

Check grepai watch --status, stop the daemon with grepai watch --stop and restart with grepai watch --background; if issues persist, remove .grepai/index.gob and rebuild.

How do I fix a 401 Unauthorized OpenAI error?

Confirm OPENAI_API_KEY is exported in your environment, verify echo $OPENAI_API_KEY, and ensure the config references the env var (embedder.api_key: ${OPENAI_API_KEY}).