Skip to content

docs(validators): add troubleshooting page#403

Open
rustemar wants to merge 3 commits into
genlayerlabs:mainfrom
rustemar:add-validator-troubleshooting
Open

docs(validators): add troubleshooting page#403
rustemar wants to merge 3 commits into
genlayerlabs:mainfrom
rustemar:add-validator-troubleshooting

Conversation

@rustemar
Copy link
Copy Markdown

@rustemar rustemar commented May 1, 2026

Summary

Adds a new validator-side troubleshooting page (pages/validators/troubleshooting.mdx) with:

  • A pre-flight checklist to run before submitting validator-prime.
  • A symptom-keyed common-issues section, with the exact log lines and error messages produced by the binary.
  • A short note on running an external monitor for redundant observability.

Why

The validators/ section currently has scattered guidance on individual checks (doctor, account export, validator-vs-full-node mode) but no consolidated "before you prime" reference and no symptom-keyed troubleshooting page. upgrade.mdx includes a 4-bullet Quick Troubleshooting section, but it's scoped to upgrade flows.

This page is structured to answer questions a first-time validator hits during the first hours of operation. Cross-linking from setup-guide.mdx was intentionally left out of this PR to keep the diff small — happy to add it in a follow-up if you'd prefer.

Notes for reviewers

  • Every code block, error string, and log line in this page was reproduced against genlayer-node-linux-amd64-v0.5.9 on a fresh Ubuntu 24.04 host while preparing my own validator setup. Nothing here is invented.
  • Two findings worth flagging separately if useful: (1) ./bin/genlayernode doctor exits with status 0 even when reporting validation failures, and (2) doctor does not verify that the consensus contract bytecode actually exists on the connected RPC — a wrong-chain RPC passes doctor but fails at startup with no contract code at given address. Both are surfaced in the page; both could plausibly be addressed in the binary as well.
  • All <Callout> usage matches the existing style in setup-guide.mdx and upgrade.mdx.
  • Complements PR docs: add comprehensive developer onboarding checklist #402 (developer-side onboarding by @HusseinAdeiza) — different audience, different docs section, no overlap.

Summary by CodeRabbit

  • Documentation
    • Added a Validator Troubleshooting guide with a pre-flight checklist for validator setup, system configuration, monitoring, and recovery procedures
    • New "Common Issues" section mapping symptoms to causes and fixes (startup, RPC/connectivity, telemetry, packaging/setup)
    • Guidance for telemetry credential refresh, external monitoring, and where to get further help

@netlify
Copy link
Copy Markdown

netlify Bot commented May 1, 2026

Deploy Preview for genlayer-docs ready!

Name Link
🔨 Latest commit a7465bf
🔍 Latest deploy log https://app.netlify.com/projects/genlayer-docs/deploys/69f50b57622182000893a52c
😎 Deploy Preview https://deploy-preview-403--genlayer-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 1, 2026

Warning

Rate limit exceeded

@rustemar has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 41 minutes and 42 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: 0982f2aa-fb24-4744-8557-13515ea3aa5d

📥 Commits

Reviewing files that changed from the base of the PR and between b0082b1 and a7465bf.

📒 Files selected for processing (1)
  • pages/validators/troubleshooting.mdx
📝 Walkthrough

Walkthrough

Adds a new troubleshooting documentation page for validators and a navigation metadata entry. The page contains a pre-flight checklist and a common issues section covering setup, RPC/chain checks, telemetry, backups, and recovery steps.

Changes

Cohort / File(s) Summary
Documentation & Navigation
pages/validators/_meta.json, pages/validators/troubleshooting.mdx
Added a troubleshooting navigation/metadata key and created a comprehensive validator troubleshooting guide (pre-flight checklist, RPC/chain probes, operator keystore backup, node-mode verification, monitoring/telemetry guidance, clock/NTP checks, recovery steps, and mapped common issues and fixes).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested reviewers

  • dohernandez
  • rasca
  • cristiam86
  • MuncleUscles

Poem

🐰 In burrows of docs I hop and write,
Checklists glowing in soft moonlight.
RPCs and keys, clocks set just right,
Validators fixed by morning light.
Hop to it — the network's bright! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'docs(validators): add troubleshooting page' is concise, uses Conventional Commits format, and directly reflects the main change: adding a new troubleshooting documentation page.
Description check ✅ Passed The PR description is comprehensive, including a clear Summary section, explanation of Why the change was needed, detailed Notes for reviewers with validation details, and context on how it complements other PRs.
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

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 41 minutes and 42 seconds.

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

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.

🧹 Nitpick comments (1)
pages/validators/troubleshooting.mdx (1)

31-34: ⚡ Quick win

Consider clarifying environment variable usage.

The curl command assumes $CONSENSUS_ADDR and $GENLAYERNODE_ROLLUP_GENLAYERCHAINRPCURL are set, but users reading this troubleshooting page may not have sourced those variables. When they copy-paste this command, they'll encounter shell variable expansion errors instead of the intended RPC probe.

💡 Suggested clarification

Option 1: Add a brief note before the command:

+Replace `$CONSENSUS_ADDR` and `$GENLAYERNODE_ROLLUP_GENLAYERCHAINRPCURL` with the actual values from your `config.yaml` (`rollup.consensusaddress` and `rollup.genlayerchainrpcurl`), or export them first:
+
+```sh
+export CONSENSUS_ADDR="0xYour..."
+export GENLAYERNODE_ROLLUP_GENLAYERCHAINRPCURL="https://..."
+```
+
 curl -s -X POST -H "Content-Type: application/json" \

Option 2: Show the command with inline placeholders:

 curl -s -X POST -H "Content-Type: application/json" \
-  --data '{"jsonrpc":"2.0","method":"eth_getCode","params":["'$CONSENSUS_ADDR'","latest"],"id":1}' \
-  "$GENLAYERNODE_ROLLUP_GENLAYERCHAINRPCURL"
+  --data '{"jsonrpc":"2.0","method":"eth_getCode","params":["<your-consensus-address>","latest"],"id":1}' \
+  "<your-genlayerchain-rpc-url>"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pages/validators/troubleshooting.mdx` around lines 31 - 34, Add a brief
clarification above the curl snippet that the shell variables CONSENSUS_ADDR and
GENLAYERNODE_ROLLUP_GENLAYERCHAINRPCURL must be set; either show the two example
export commands (export CONSENSUS_ADDR="0xYour..." and export
GENLAYERNODE_ROLLUP_GENLAYERCHAINRPCURL="https://...") or rewrite the curl
example to use inline placeholders (e.g., <CONSENSUS_ADDR> and
<GENLAYERNODE_ROLLUP_GENLAYERCHAINRPCURL>) so readers can copy-paste without
shell expansion errors, and ensure the note references those exact variable
names.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@pages/validators/troubleshooting.mdx`:
- Around line 31-34: Add a brief clarification above the curl snippet that the
shell variables CONSENSUS_ADDR and GENLAYERNODE_ROLLUP_GENLAYERCHAINRPCURL must
be set; either show the two example export commands (export
CONSENSUS_ADDR="0xYour..." and export
GENLAYERNODE_ROLLUP_GENLAYERCHAINRPCURL="https://...") or rewrite the curl
example to use inline placeholders (e.g., <CONSENSUS_ADDR> and
<GENLAYERNODE_ROLLUP_GENLAYERCHAINRPCURL>) so readers can copy-paste without
shell expansion errors, and ensure the note references those exact variable
names.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 3193197e-8b87-49cb-8e82-f4e3fc778ca7

📥 Commits

Reviewing files that changed from the base of the PR and between a567b5d and 5a5916e.

📒 Files selected for processing (2)
  • pages/validators/_meta.json
  • pages/validators/troubleshooting.mdx

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 `@pages/validators/troubleshooting.mdx`:
- Around line 29-37: The curl example in the troubleshooting doc mixes a
hardcoded consensus address with a placeholder RPC URL, which is inconsistent
with the prose; update the example to use a clear placeholder (e.g.
YOUR_CONSENSUS_ADDRESS) or change the prose to say only the RPC URL must be
substituted, and mention the config keys consensus.consensusaddress and
rollup.genlayerchainrpcurl so users know where to source the address; also add a
short note that consensus addresses can change after network upgrades so the
hardcoded address may become stale.
🪄 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: d1a2059e-5817-4d15-ae9b-689498ac74f6

📥 Commits

Reviewing files that changed from the base of the PR and between 5a5916e and b0082b1.

📒 Files selected for processing (1)
  • pages/validators/troubleshooting.mdx

Comment thread pages/validators/troubleshooting.mdx Outdated
@HusseinAdeiza
Copy link
Copy Markdown

Nice work on the validator troubleshooting guide! 👍

This is a great complement to the developer onboarding checklist (#402) - together they cover both sides of the GenLayer ecosystem. The symptom-keyed troubleshooting section is particularly helpful.

Looking forward to seeing this merged!

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