{"record":{"id":"2910a36b33c252e4","repo":"HKUDS/nanobot","slug":"slack-target-channel-name-is-empty","errorCode":null,"errorMessage":"Slack target channel name is empty","messagePattern":"Slack target channel name is empty","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"nanobot/channels/slack/runtime.py","lineNumber":305,"sourceCode":"        if self._SLACK_ID_RE.fullmatch(target):\n            if target.startswith((\"U\", \"W\")):\n                return await self._open_dm_for_user(target)\n            return target\n\n        if target.startswith(\"#\"):\n            return await self._resolve_channel_name(target[1:])\n        if target.startswith(\"@\"):\n            return await self._resolve_user_handle(target[1:])\n\n        try:\n            return await self._resolve_channel_name(target)\n        except ValueError:\n            return await self._resolve_user_handle(target)\n\n    async def _resolve_channel_name(self, name: str) -> str:\n        normalized = self._normalize_target_name(name)\n        if not normalized:\n            raise ValueError(\"Slack target channel name is empty\")\n\n        cache_key = f\"channel:{normalized}\"\n        if cache_key in self._target_cache:\n            return self._target_cache[cache_key]\n\n        cursor: str | None = None\n        web_api = self._require_web_api()\n        while True:\n            response = cast(dict[str, Any], await web_api.conversations_list(\n                types=\"public_channel,private_channel\",\n                exclude_archived=True,\n                limit=200,\n                cursor=cursor,\n            ))\n            for channel_value in cast(list[object], response.get(\"channels\", [])):\n                channel = cast(dict[str, Any], channel_value)\n                if self._normalize_target_name(str(channel.get(\"name\") or \"\")) == normalized:\n                    channel_id = str(channel.get(\"id\") or \"\")","sourceCodeStart":287,"sourceCodeEnd":323,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/channels/slack/runtime.py#L287-L323","documentation":"Error \"Slack target channel name is empty\" thrown in HKUDS/nanobot.","triggerScenarios":"Thrown at nanobot/channels/slack/runtime.py:305 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"42f37dc4c0e409eac7818a82d165c5f2757bc075","analyzedAt":"2026-08-26T00:18:52.276Z","schemaVersion":2},"datasetVersion":"2026-08-26T04:18:47.238Z"}