Skip to content

docs(operations): add Troubleshooting page#457

Open
gkorland wants to merge 3 commits intomainfrom
docs/add-troubleshooting-page
Open

docs(operations): add Troubleshooting page#457
gkorland wants to merge 3 commits intomainfrom
docs/add-troubleshooting-page

Conversation

@gkorland
Copy link
Copy Markdown
Contributor

@gkorland gkorland commented May 2, 2026

Summary

Create a site-wide troubleshooting hub aggregating common issues from Docker, queries, memory, replication, and Kubernetes.

Changes

  • New page: operations/troubleshooting.md covering:
    • Connection issues (refused, NOAUTH, MOVED redirect)
    • Query issues (timeout, graph not found, slow queries)
    • Memory issues (OOM, QUERY_MEM_CAPACITY)
    • Docker issues (container exits, data loss, Browser access)
    • Replication issues (replica not syncing)
    • Kubernetes issues (CrashLoopBackOff)
    • Getting More Help section with links to GitHub, Discord, support
  • operations/index.md: Added Troubleshooting link (section 13)

Testing

  • All internal links verified (/commands/graph.explain, /operations/durability, etc.)
  • Front matter follows Operations page conventions

Memory / Performance Impact

N/A — documentation only

Related Issues

Addresses audit item P2.2 (Audit-Report.md)

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive Troubleshooting section to the Operations guide covering common production issues including connection failures, query timeouts, out-of-memory errors, Docker deployment problems, replication synchronization issues, and Kubernetes operational challenges. The guide includes diagnostic commands, configuration solutions, slow query identification methods, memory optimization tips, persistent storage guidance, and resources for obtaining additional support.

Create a troubleshooting hub at operations/troubleshooting.md
aggregating common issues:
- Connection issues (refused, NOAUTH, MOVED redirect)
- Query issues (timeout, graph not found, slow queries)
- Memory issues (OOM, QUERY_MEM_CAPACITY)
- Docker issues (container exits, data loss, Browser access)
- Replication issues (replica not syncing)
- Kubernetes issues (CrashLoopBackOff)

Also adds Troubleshooting to the Operations index page.

Addresses audit item P2.2.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 2, 2026

Warning

Rate limit exceeded

@gkorland has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 53 minutes and 14 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 31d1c812-ca34-4bd4-9456-f410b08ec521

📥 Commits

Reviewing files that changed from the base of the PR and between 1a24abc and b2bfe7a.

📒 Files selected for processing (1)
  • .wordlist.txt
📝 Walkthrough

Walkthrough

A troubleshooting section is added to the operations documentation. The index is updated to reference the new guide, and a comprehensive troubleshooting page is created covering connection errors, query issues, memory problems, Docker concerns, replication failures, and Kubernetes deployment issues.

Changes

Operations Troubleshooting Documentation

Layer / File(s) Summary
Documentation Navigation
operations/index.md
Index updated to add Chapter 13: Troubleshooting with link and description text.
Troubleshooting Guide Content
operations/troubleshooting.md
New documentation page with YAML front-matter and sections covering connection issues (refused, NOAUTH, MOVED redirects), query issues (timeouts, missing graphs, slow query diagnosis), memory issues (OOM diagnostics and caps), Docker issues (container exit, data persistence, browser access), replication issues (replica sync failures), and Kubernetes issues (CrashLoopBackOff). Includes configuration commands, diagnostic steps, and guidance for obtaining support.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A troubleshooting guide hops into view,
Connection and memory woes now clarified true,
Docker and Kubernetes, replication's plight,
Production issues solved with knowledge so bright!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and concisely describes the primary change: adding a new Troubleshooting page to the operations documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/add-troubleshooting-page

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 0/1 reviews remaining, refill in 53 minutes and 14 seconds.

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new Operations troubleshooting hub that consolidates common FalkorDB runtime and deployment problems into a single documentation page, and links that page from the Operations index so users can discover it from the existing ops navigation.

Changes:

  • Added operations/troubleshooting.md with troubleshooting guidance for connection, query, memory, Docker, replication, and Kubernetes issues.
  • Added an Operations index entry linking to the new troubleshooting page.
  • Reused existing site-wide internal-link patterns to connect readers to command, configuration, and deployment docs for deeper follow-up.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
operations/troubleshooting.md New troubleshooting guide aggregating common operational issues and linking to deeper docs.
operations/index.md Adds the new Troubleshooting page to the Operations landing page list.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

1. **Check memory usage:**

```
GRAPH.MEMORY myGraph
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@operations/troubleshooting.md`:
- Around line 82-189: The markdown file has multiple fenced code blocks without
a language tag (e.g., the blocks containing commands like "GRAPH.CONFIG GET
TIMEOUT_DEFAULT", "GRAPH.CONFIG SET TIMEOUT_DEFAULT 10000", "GRAPH.EXPLAIN
myGraph ...", "GRAPH.QUERY myGraph ...", "GRAPH.LIST", "GRAPH.SLOWLOG myGraph",
"GRAPH.PROFILE myGraph ...", "GRAPH.QUERY myGraph \"CREATE INDEX ...\"",
"GRAPH.MEMORY myGraph", and "CONFIG SET maxmemory 8gb"); fix MD040 by adding a
language identifier (preferably bash or text) to each opening fence (change ```
to ```bash) for all fenced blocks flagged in this diff so the linter stops
reporting MD040 and the code blocks are properly highlighted.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ee877d72-3ada-4bfd-b1be-b09da6e944c8

📥 Commits

Reviewing files that changed from the base of the PR and between b1b07e7 and 1a24abc.

📒 Files selected for processing (2)
  • operations/index.md
  • operations/troubleshooting.md

Comment on lines +82 to +189
1. **Check the current timeout settings:**

```
GRAPH.CONFIG GET TIMEOUT_DEFAULT
GRAPH.CONFIG GET TIMEOUT_MAX
```

2. **Increase the timeout** (if the query legitimately needs more time):

```
GRAPH.CONFIG SET TIMEOUT_DEFAULT 10000
```

3. **Optimize the query** — use [GRAPH.EXPLAIN](/commands/graph.explain) to inspect the query plan and add indexes where needed:

```
GRAPH.EXPLAIN myGraph "MATCH (n:Person {name: 'Alice'}) RETURN n"
```

4. **Override timeout per-query:**

```
GRAPH.QUERY myGraph "MATCH (n) RETURN n LIMIT 100" TIMEOUT 30000
```

See [Configuration — Timeouts](/getting-started/configuration#timeout_default) for more details.

### Graph Not Found

**Symptom:** `ERR Invalid graph operation on empty key` or similar.

**Cause:** The graph key does not exist — it may not have been created yet, or the name is misspelled.

**Solution:**

```
# List all graphs
GRAPH.LIST
```

Verify the graph name matches exactly (graph names are case-sensitive).

### Slow Queries

**Symptom:** Queries take longer than expected.

**Diagnostic Steps:**

1. **Check the slow log:**

```
GRAPH.SLOWLOG myGraph
```

This shows queries that took ≥ 10 ms.

2. **Profile the query:**

```
GRAPH.PROFILE myGraph "MATCH (n:Person)-[:KNOWS]->(m) WHERE n.name = 'Alice' RETURN m"
```

Look for full graph scans — these indicate a missing index.

3. **Add an index** if the query filters on a property:

```
GRAPH.QUERY myGraph "CREATE INDEX FOR (n:Person) ON (n.name)"
```

See [Range Indexes](/cypher/indexing/range-index) and [GRAPH.PROFILE](/commands/graph.profile) for more details.

---

## Memory Issues

### Out of Memory

**Symptom:** `OOM command not allowed when used memory > maxmemory` or query fails with memory allocation error.

**Possible Causes:**
1. The graph exceeds available memory
2. A single query allocates too much memory

**Solutions:**

1. **Check memory usage:**

```
GRAPH.MEMORY myGraph
INFO memory
```

2. **Limit per-query memory:**

```
GRAPH.CONFIG SET QUERY_MEM_CAPACITY 1073741824 # 1 GB
```

3. **Increase the server memory limit** (if resources are available):

```
CONFIG SET maxmemory 8gb
```

4. **Optimize your data model** — remove unnecessary properties, use shorter string values, or split into multiple graphs.

See [GRAPH.MEMORY](/commands/graph.memory) and [Configuration — QUERY_MEM_CAPACITY](/getting-started/configuration#query_mem_capacity) for details.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Fix markdownlint MD040: add a language to fenced code blocks.

Several command fences start with ``` (no language), triggering markdownlint-cli2 (MD040) at lines 84, 91, 97, 103, 117, 132, 140, 148, 170, 177, and 183. Add a language tag to each (e.g., `bash` or `text`) to keep CI/lint clean.

🛠️ Proposed fix (representative change)
  1. **Check the current timeout settings:**
-   ```
+   ```bash
    GRAPH.CONFIG GET TIMEOUT_DEFAULT
    GRAPH.CONFIG GET TIMEOUT_MAX
    ```
...
  2. **Increase the timeout** (if the query legitimately needs more time):
-   ```
+   ```bash
    GRAPH.CONFIG SET TIMEOUT_DEFAULT 10000
    ```
...
  # List all graphs
- GRAPH.LIST
+ ```bash
+ GRAPH.LIST
+ ```

Apply the same ```bash (or ```text) change to every fenced block flagged by MD040 in this file.

🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 84-84: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 91-91: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 97-97: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 103-103: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 117-117: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 132-132: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 140-140: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 148-148: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 170-170: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 177-177: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 183-183: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@operations/troubleshooting.md` around lines 82 - 189, The markdown file has
multiple fenced code blocks without a language tag (e.g., the blocks containing
commands like "GRAPH.CONFIG GET TIMEOUT_DEFAULT", "GRAPH.CONFIG SET
TIMEOUT_DEFAULT 10000", "GRAPH.EXPLAIN myGraph ...", "GRAPH.QUERY myGraph ...",
"GRAPH.LIST", "GRAPH.SLOWLOG myGraph", "GRAPH.PROFILE myGraph ...", "GRAPH.QUERY
myGraph \"CREATE INDEX ...\"", "GRAPH.MEMORY myGraph", and "CONFIG SET maxmemory
8gb"); fix MD040 by adding a language identifier (preferably bash or text) to
each opening fence (change ``` to ```bash) for all fenced blocks flagged in this
diff so the linter stops reporting MD040 and the code blocks are properly
highlighted.

Add NOAUTH, redirections, CrashLoopBackOff, PersistentVolumeClaim to
.wordlist.txt to fix check-spelling CI failure on
operations/troubleshooting.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants