option-berthGuide

When something looks wrong

Most confusion about a local stack is a missing fact, not a broken service. This page routes a symptom to the one command that produces the missing fact, and then to the chapter that explains it.

Start with the read

oberth status is the first command for almost every symptom: it prints the manifest, the runs and the observed runtime facts side by side. If it prints a failure reason, read that reason before reading any log — it names the service and the phase.

the one read to start from
oberth status

Symptom to first command

Each symptom and the command that explains it
What you seeRun this firstWhat it means
listening unknown, or an observation_* codeoberth doctor --only listener_observationThe observer, not the service, could not see the listener table. Retry from a normal terminal; do not read a timeout as a failure.
up --wait never returnsoberth logs <service> --onceReadiness is listener plus health. The service's own output says which half failed.
A service line shows an exit and a codeoberth logs <service> --once --first-errorThe first error of the current run, not the last screen of output.
auto port unassignedoberth status --jsonNot a failure: port: auto has not been assigned yet. A candidate is verified by binding, not by trusting an empty listener table.
code_changed_since_startoberth restartThe process runs older code than the checkout. It is a code fact, not a runtime failure.
A stop hits the wrong project, or refusesoberth down --worktree <path>Several checkouts share a project name. Identify the checkout explicitly; do not widen the stop.
Services still run after a checkout was deletedoberth worktrees --goneThe identity ledger kept the path. Stop them by worktree or identity; deleting data stays your job.
“manifest not found”, or a draft you never adoptedoberth initAn agent may draft a manifest; only oberth init adopt makes it the input to anything.
The project lives outside your home directoryoberth up --allow-outside-home after reviewThe home boundary is a default, not an accident. Read the flag before you pass it.

What to keep when you ask for help

  • The exact command and its exit code, not a paraphrase of what it printed.
  • oberth status --json from the same checkout, so the reader sees the same facts.
  • The first error of the current run: oberth logs <service> --once --first-error.
  • What the observer said, if observation appeared at all: which code, and from which kind of process.

What is not a fix

Edit this page

Type to search every chapter and section.