Skip to content

Troubleshooting Center ​

This page is generated from a structured incident catalog. Every issue follows “Symptom → Cause → Action → Verification”; do not skip verification.

Start from the symptom. Change one condition at a time and retain startup logs, Trace, and generation details.

Quick index ​

Console cannot connect to the Runtime ​

Symptom ​

Console remains offline or reconnecting and page data stops updating.

Cause ​

  • The Runtime is stopped, or Console uses a different host, port, or base path.
  • The reverse proxy does not forward SSE or buffers the event stream.

Action ​

  • Run npx zhin doctor, then inspect the HTTP listen address in startup logs.
  • Ensure the proxy disables buffering and keeps /api/events connections open.

Verification ​

  • curl -i http://127.0.0.1:8086/pub/health should succeed, and the Console header should return to Connected.

Console returns 401 or 403 ​

Symptom ​

Requests remain rejected after login, or write actions report insufficient permissions.

Cause ​

  • The Console token differs from the active generation's http.token.
  • The session is read-only Demo mode, or its token lacks the required scope.

Action ​

  • Reload HTTP_TOKEN from the deployment environment rather than browser history or stale config.
  • After changing the production token, publish a new generation and sign in again.

Verification ​

  • Verify the same token with curl -H "Authorization: Bearer $HTTP_TOKEN" http://127.0.0.1:8086/api/system/stats.

Endpoint remains offline ​

Symptom ​

The adapter is installed, but its Endpoint is offline and cannot receive or send messages.

Cause ​

  • The instance configuration fails its plugin Schema or credentials are empty.
  • The platform is unreachable, the webhook URL is wrong, or the account is rejected.

Action ​

  • Inspect the latest error in Endpoint details, then compare it with the generated configuration fields.
  • Revalidate credentials, callback URLs, and network egress against the platform guide.

Verification ​

  • After reload, the Endpoint should become online; send a real direct-message probe to verify both directions.

Messages or notices are missing after refresh ​

Symptom ​

Live messages appear, but history is incomplete after refresh, reconnect, or SSE recovery.

Cause ​

  • The selected Endpoint or Channel differs from the message's interaction space.
  • The server event journal has a gap and the client must rebuild from authoritative HTTP APIs.

Action ​

  • Reselect the target Endpoint and Channel and wait for recovery to finish.
  • Confirm the database persistence directory is writable and the proxy does not cache history APIs.

Verification ​

  • Send a uniquely worded message, refresh, and restart the Runtime; the HTTP history API should restore it.

Configuration is rejected at startup ​

Symptom ​

Startup reports Invalid Plugin config, an unknown top-level field, or environment expansion failure.

Cause ​

  • A field name, type, or enum value differs from the installed version's Schema.
  • ${VAR} is unset and expands to an empty value that fails validation.

Action ​

Verification ​

  • npx zhin doctor should pass, followed by npx zhin runtime start without validation errors.

Agent has no available model or provider ​

Symptom ​

Agent Studio cannot start a turn and reports an unavailable provider, model, or API key.

Cause ​

  • The provider environment variable is empty and the Runtime soft-prunes it.
  • The Agent's model is not published by any provider in the active generation.

Action ​

  • Confirm the provider and model are published in Console, then check the deployment API key.
  • Fix the Agent binding and publish a new generation instead of only editing disk config.

Verification ​

  • Run a minimal text turn in the playground; Trace should show turn start, model response, and completed.

Tool is awaiting approval or denied by policy ​

Symptom ​

An Agent turn stops at a tool step marked pending approval, denied, or cancelled.

Cause ​

  • The working directory or tool is outside the active security policy.
  • The approval was not handled, or a cancellation signal already ended the turn.

Action ​

  • Inspect cwd, security policy, and approval details in Agent Studio; approve only understood side effects.
  • After cancellation, start a new turn rather than replaying a tool call that may have produced side effects.

Verification ​

  • Run a read-only probe; the tool and turn terminal states should agree and the approval record should be traceable.

A chat, channel, or repository does not route to a Workroom ​

Symptom ​

A message falls back to normal chat, or a task does not appear on the expected Workroom board.

Cause ​

  • The Catalog lacks an exact interaction-space binding or still points to an old Agent.
  • One Bot may serve multiple Workrooms, but the chat, channel, or repository identity is wrong or conflicting.

Action ​

  • Check Bot, Endpoint, space ID, member roles, and Agent binding in Console Workroom configuration.
  • After saving the Catalog, send a new message; historical messages are not reinterpreted.

Verification ​

  • A new message should create a task/run in the target Workroom and show the matched space and Agent in details.

Container restarts or health checks fail ​

Symptom ​

Compose or Kubernetes reports unhealthy, CrashLoopBackOff, or persistence permission errors.

Cause ​

  • The node user cannot write the .zhin or data mount.
  • A required Secret, project config, or image tag was not deployed correctly.

Action ​

  • Inspect the first error from docker compose logs zhin or kubectl logs deploy/zhin.
  • Follow Production Deployment to verify ownership, Secrets, and immutable image tags.

Verification ​

  • docker compose ps or kubectl rollout status deploy/zhin should remain successful and the health endpoint should pass.