Skip to main content
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:
gen service validator local --embedded-config
This is the canonical local-validator startup the lessons use throughout.
Symptom on cargo test:
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:
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 — pick one mode (see Contract test tools).
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.
  4. The activation hasn’t simply expired (valid_until_block lapsed) — for long-running scripts, refresh the block index before each submission.
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.