Skip to content
ochat
Search documentation

Use quotes for an exact phrase.

Search by topic, command, or code identifier.

    GitHub ↗

    Host troubleshooting

    Resolve host, connection, provider, and local stdio problems.

    View Markdown source ↗

    Start with config validation, actual executable help, the connection status, and the typed error. Do not log raw credentials, tool arguments or full transcripts unless you have explicitly reviewed their sensitivity.

    SymptomCheck / action
    Wrong TUI behavior or rejected local flagsRun with --no-config; inspect --print-effective-args; distinguish native/legacy/connected modes.
    Native local history disappears on quitExpected transient mode; use a durable daemon or supported persistent local host, not invented TUI data-root flags.
    Socket refused/missingCorrect absolute URI; daemon running; private owned parent; inspect startup diagnostics. Do not remove a live socket.
    Store already ownedIdentify existing owner and shut it down normally; don’t delete lock files or run two configs sharing a root.
    HTTP 401Raw token versus hash, one valid bearer header, principal/expiry and loaded token file; restart after credential-file replacement.
    HTTP connection ID missing/unknownInitialize, capture response header and retain it across requests. After restart initialize again.
    Protocol-version/content-type errorExactly one accepted version header; JSON content type/UTF-8; correct /v1/rpc route.
    Catalog ID rejectedList catalogs; use opaque returned wire IDs. TUI friendly config names are not raw protocol IDs.
    Prompt validates but catalog reports unavailableArtifact construction has additional source-closure/manifest checks. Keep captured imports/scripts beneath the root prompt directory; inspect the catalog diagnostic.
    HTTP connection authority differsToken scopes, attributes, authentication kind or principal changed. Initialize a new connection; do not reuse a connection ID from a broader credential.
    Observer cannot see operator sessionTranscript scope alone does not grant cross-principal visibility. Use the same creator principal with restricted scopes and a separate connection.
    Materialized prompt tree verification failsPreserve evidence and restore the complete verified artifact from a trusted backup, or publish a newly reviewed prompt revision. Do not edit digests to accept changed bytes.
    Workspace unavailable or queuedPrompt/workspace pairing, canonical directory identity, exclusive conflict domain and root/job quota limits.
    Permission denied on writable clientCredential scopes, actor attachment ownership/lease, invocation identity and current revision. Writable mode cannot grant scope.
    Tool appears stuck asking approvalAuthorized writable approver present? approval_timeout none can wait; inspect pending permissions/fallback and runtime policy.
    Named reviewer/OAuth unavailableStock config IDs require injected implementations; select supported static auth/policy or embed the resolver.
    Shell manifest rejectedInspect exact expanded source, source/manifest hashes, host path context, trusted-source/signature and administrative ceilings.
    Shell backend/resource helper unavailableInstall required helper/backend, verify trusted path/platform limits; do not silently fall back to direct execution.
    Audit rows are redactedScope projection is deliberate; grants/audit/security require their own scopes. Remote audit is not filesystem access.
    TUI shows connected and thinking after client lossConnection detection/lease/idle timeouts differ from turn completion. Check daemon operation state; do not submit duplicates to unstick it.
    HTTP events stallProxy buffering, SSE blank-frame and multi-data-line parser, independently draining notifications/stderr, body/queue limits.
    Provider request stallsInspect daemon’s API_URL override and credentials without printing secrets; isolate transport framing from model latency.
    Duplicate transcript after reconnectReplace snapshot instead of append; deduplicate stable IDs/sequence; don’t mix operation sequence with durable cursor.
    snapshot_requiredFetch scoped snapshot and resume after its latest durable sequence. Preserve client draft separately.
    Pagination cursor invalidIdentity/query/collection/host changed; restart the listing rather than editing signed cursor data.
    Revision conflictFetch current state; review intended mutation; don’t remove the revision check to force it.
    Crash leaves interrupted job/toolExternal side effect may be unknown; inspect records and reconcile before retry. Persisted state is not a continuation.
    Corrupt store or unsupported schemaStop mutations, preserve backup/logs, inspect schema and recovery error; inspection is not automatic repair.
    High memory/descriptorsDistinguish active actors/jobs/subscribers, retained streams/history/artifacts and runtime/allocator overhead; sample trends, not one RSS value.
    Terminal broken after exitCheck actual terminal restoration; headless PTY checks don’t replace every emulator’s visual/input behavior.

    In the current checkout, ochat-agent-stdio --local --prompt FILE without --data-root fails with “The default generator is not yet initialized.” Embedded.create_temporary_root allocates an ID before Daemon.start initializes the cryptographic RNG. This was reproduced with freshly built binaries and no provider key, before protocol initialization or any model request.

    Until the runtime is fixed, give standalone local stdio a dedicated private --data-root, as in the stdio tutorial, or use the daemon gateway. The explicit root changes persistence to durable but liveness stays process-bound. Do not reuse a normal daemon’s active data directory. Custom embedders should initialize the RNG before Embedded.start.

    This is an implementation defect, not a missing provider credential or a bad ChatML script. A test harness that initializes the RNG globally can mask it.

    For a reproducible report include version/build context, host mode, transport, redacted config, exact command, typed error, timestamps and whether an isolated offline fixture reproduces it. Do not run load/soak or paid model tests merely to collect a first diagnostic. See testing and operations.