Skip to content

Troubleshooting

Common problems with Nanobot AI Agent, what causes them and how to fix them.

The web UI does not load

Cause: The service is still starting, has failed, or the tunnel is not running.

Fix:

  1. On the instance, check the service:

    sudo systemctl is-active sushi-nanobot.service
    sudo journalctl -u sushi-nanobot.service --no-pager -n 50
    
  2. Make sure your SSH or Session Manager tunnel is still open, and open http://127.0.0.1:8765.

The service checks its installed runtime before it starts, so first startup can take a few minutes.

The service keeps restarting

Cause: The runtime check failed, config.json is invalid, or the Telegram settings were rejected.

Fix: Read the log for the reason:

sudo systemctl show sushi-nanobot.service -p ActiveState -p SubState -p NRestarts
sudo journalctl -u sushi-nanobot.service --no-pager -n 50

If you edited config.json by hand, check that it is valid JSON, owned by nanobot and mode 0600. Do not start a second gateway to work around it.

The password is not accepted

Cause: The password was copied incorrectly, or it belongs to a different instance. Each instance generates its own.

Fix: Read channels.websocket.tokenIssueSecret again from /var/lib/nanobot/.nanobot/config.json on this instance. See Get the web UI password.

The agent does not answer, or reports an authentication or quota error

Cause: The provider key, model or quota is wrong, or the instance cannot reach the provider.

Fix: Correct the key and model under Settings → Models, check your quota with the provider, and allow outbound HTTPS to the provider. Repeat the test task.

A tool is refused with a path error

Cause: Tools are restricted to the agent's workspace.

Fix: Put the files in /var/lib/nanobot/.nanobot/workspace and make nanobot their owner. See Workspace.

Telegram configuration rejected

Cause: The helper refused the private input file. Common reasons:

  • the file is not owned by nanobot, or its mode is not 0600;
  • the token is empty or contains spaces;
  • allowedUserIds or allowedChatIds is empty, or holds something other than numeric strings.

Fix: Correct the file and run the helper again. See Telegram.

Telegram is silent

Check, in order:

  1. The service is running and its log shows no Telegram error.
  2. You wrote from a user ID and chat ID that are both in the allowlists.
  3. Nothing else polls the same bot, and the bot has no webhook.
  4. Your model works in the web UI.
  5. The instance can reach Telegram over outbound HTTPS.