{"record":{"id":"00cbf7a80c081259","repo":"ruvnet/RuView","slug":"wifi-interface-self-interface-not-found-chec","errorCode":null,"errorMessage":"WiFi interface '{self._interface}' not found. Check 'netsh wlan show interfaces' for the correct name.","messagePattern":"WiFi interface '(.+?)' not found\\. Check 'netsh wlan show interfaces' for the correct name\\.","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"archive/v1/src/sensing/rssi_collector.py","lineNumber":553,"sourceCode":"\n    def get_samples(self, n: Optional[int] = None) -> List[WifiSample]:\n        if n is not None:\n            return self._buffer.get_last_n(n)\n        return self._buffer.get_all()\n\n    def collect_once(self) -> WifiSample:\n        return self._read_sample()\n\n    # -- internals -----------------------------------------------------------\n\n    def _validate_interface(self) -> None:\n        try:\n            result = subprocess.run(\n                [\"netsh\", \"wlan\", \"show\", \"interfaces\"],\n                capture_output=True, text=True, timeout=5.0,\n            )\n            if self._interface not in result.stdout:\n                raise RuntimeError(\n                    f\"WiFi interface '{self._interface}' not found. \"\n                    f\"Check 'netsh wlan show interfaces' for the correct name.\"\n                )\n            if \"disconnected\" in result.stdout.lower().split(self._interface.lower())[1][:200]:\n                raise RuntimeError(\n                    f\"WiFi interface '{self._interface}' is disconnected. \"\n                    f\"Connect to a WiFi network first.\"\n                )\n        except FileNotFoundError:\n            raise RuntimeError(\n                \"netsh not found. This collector requires Windows.\"\n            )\n\n    def _sample_loop(self) -> None:\n        interval = 1.0 / self._rate\n        while self._running:\n            t0 = time.monotonic()\n            try:","sourceCodeStart":535,"sourceCodeEnd":571,"githubUrl":"https://github.com/ruvnet/RuView/blob/4685618388a5e49fad5b3005806f3bdd6a7c25c3/archive/v1/src/sensing/rssi_collector.py#L535-L571","documentation":"The Windows RSSI collector's _validate_interface() runs 'netsh wlan show interfaces' and requires the configured interface name to appear in the command output. If the name is absent, netsh either sees no WLAN adapters or lists them under different names (typically 'Wi-Fi'), so the configured name is wrong for this machine. This is a configuration mismatch, not a netsh failure (a missing netsh raises a different error).","triggerScenarios":"Constructing WindowsWifiCollector with a Linux-style name like 'wlan0' on Windows; the adapter was renamed in Windows settings; the machine has no WiFi adapter or the WLAN AutoConfig service is disabled so netsh lists nothing; non-English Windows locales where the adapter name differs.","commonSituations":"Reusing configuration files across Linux and Windows deployments; disabled or uninstalled WiFi drivers; 'WLAN AutoConfig' (WlanSvc) service stopped; virtual machines without a bridged WiFi adapter.","solutions":["Run 'netsh wlan show interfaces' and copy the exact value shown in the 'Name' field (usually 'Wi-Fi') into the collector configuration.","Start the WLAN AutoConfig service: 'net start WlanSvc' (or set it to Automatic in services.msc).","In Device Manager, confirm the WiFi adapter is enabled and its driver is working.","If the machine genuinely has no WiFi, run the collector on hardware that does or use the ESP32 CSI path instead."],"exampleFix":"# before\ncollector = WindowsWifiCollector(interface='wlan0', rate=2.0)\ncollector.start()  # RuntimeError: WiFi interface 'wlan0' not found\n\n# after\nimport subprocess\nout = subprocess.run(['netsh', 'wlan', 'show', 'interfaces'],\n                     capture_output=True, text=True, timeout=5.0).stdout\nnames = [ln.split(':', 1)[1].strip() for ln in out.splitlines()\n         if ln.strip().startswith('Name')]\nif not names:\n    raise SystemExit('no WLAN adapter visible to netsh')\ncollector = WindowsWifiCollector(interface=names[0], rate=2.0)","handlingStrategy":"validation","validationCode":"import subprocess, sys\nif sys.platform == 'win32':\n    out = subprocess.run(['netsh', 'wlan', 'show', 'interfaces'],\n                         capture_output=True, text=True, timeout=5.0).stdout\n    if 'Wi-Fi' not in out:\n        names = [ln.split(':', 1)[1].strip() for ln in out.splitlines()\n                 if ln.strip().startswith('Name')]\n        raise SystemExit(f'use one of the adapter names: {names}')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["On Windows, query 'netsh wlan show interfaces' once at startup and feed the discovered Name into the collector config.","Never reuse Linux interface names (wlan0) in Windows deployments.","Verify the WLAN AutoConfig service is running before deploying the collector."],"tags":["windows","wifi","netsh","interface","configuration"],"backgroundTag":null,"analyzedSha":"4685618388a5e49fad5b3005806f3bdd6a7c25c3","analyzedAt":"2026-08-16T06:09:40.886Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}