> ## Documentation Index
> Fetch the complete documentation index at: https://docs.genlabs.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Validator

> Local validator startup gotchas, stale processes blocking tests, and CLI/SDK failing to reach the RPC endpoint.

<Accordion title="`Config file not found at 'validator_local_runner_config.yaml'`">
  You launched `gen service validator local` without `--embedded-config`.
  Without that flag, the CLI looks for a config file relative to your current
  working directory and exits with a file-not-found error. Always include the
  flag unless you're inside the framework source tree:

  ```bash theme={null}
  gen service validator local --embedded-config
  ```

  This is the canonical local-validator startup the lessons use throughout.
</Accordion>

<Accordion title="Stale validator process blocks tests with `ReadyTimeout`">
  Symptom on `cargo test`:

  ```text theme={null}
  validator subprocess should start: ReadyTimeout(15s)
  ```

  Cause: a previous `gen` validator is still bound to port `30001` and the test
  fixture can't start a fresh one. Find and kill it:

  ```bash theme={null}
  lsof -nP -iTCP:30001 -sTCP:LISTEN
  kill <pid>
  ```

  Then retry. If this happens repeatedly, you may be running the test fixture
  in subprocess mode while a long-lived host validator is also up — use one
  validator at a time (`gen service validator local`, or stop it before running
  integration tests that spawn their own).
</Accordion>

<Accordion title="`TransportRequestFailed` / `SendRequest client error` hitting the validator">
  The CLI / SDK can't reach the validator. Check, in order:

  1. Validator is actually up: `lsof -nP -iTCP:30001 -sTCP:LISTEN` (or
     whichever port your `SERVER_URL` uses).
  2. The URL the CLI is using: `gen config show` — look at `rpc_url`.
  3. If hitting DevNet, the bearer header is set: `gen config show` should
     print an `authorization` header. See the
     [DevNet access callout](/quickstart/index).
  4. The activation hasn't simply expired (`valid_until_block` lapsed) — for
     long-running scripts, refresh the block index before each submission.
</Accordion>

<Note>
  Hit something not on this page? Send the failing command and the full error
  output to your Gen Labs contact — the page grows from real reports.
</Note>
