HKUDS/nanobot · error · CliAppError

uninstall failed

Error message

uninstall failed

What it means

Error "uninstall failed" thrown in HKUDS/nanobot.

Source

Thrown at nanobot/apps/cli/service.py:1269

    def uninstall(self, name: str) -> dict[str, Any]:
        app = self.get_app(name)
        installed = self._load_installed()
        if str(app["name"]) not in installed:
            raise CliAppError("CLI app is not installed")
        raw_installed_entry = installed.get(str(app["name"]))
        installed_entry = _as_object_dict(raw_installed_entry)
        if installed_entry is None:
            installed_entry = {}
        strategy = self._strategy(app)
        entry_point = str(app.get("entry_point") or "").strip()
        managed_entry_path = str(installed_entry.get("entry_point_path") or "").strip()
        if strategy != "bundled":
            argv = self._argv_for_action(app, "uninstall", installed_entry=installed_entry)
            assert argv is not None
            result = self._run_argv(argv, timeout=self.runtime.install_timeout)
            if result.returncode != 0:
                raise CliAppError(_truncate(result.stderr or result.stdout or "uninstall failed"), status=500)
            still_managed = bool(managed_entry_path and Path(managed_entry_path).exists())
            still_available = bool(entry_point and shutil.which(entry_point))
            if still_managed or (not managed_entry_path and still_available):
                reason = (
                    f"the recorded entry point at {managed_entry_path} still exists"
                    if still_managed
                    else f"{entry_point} is still available on PATH"
                )
                message = (
                    f"Uninstall for {app['display_name']} completed, but {reason}, "
                    "so nanobot kept it installed."
                )
                return self.payload() | {
                    "last_action": {
                        "ok": False,
                        "message": message,
                        "removed": False,
                        "still_available": True,

View on GitHub (pinned to 42f37dc4c0)

When it happens

Trigger: Thrown at nanobot/apps/cli/service.py:1269 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of HKUDS/nanobot@42f37dc4c0 (2026-08-26). Data as JSON: /api/errors/9a616e63e2251fb2. Report an issue: GitHub.