{"record":{"id":"8c4fab302b73c31d","repo":"ruvnet/RuView","slug":"port-must-be-a-positive-integer","errorCode":null,"errorMessage":"Port must be a positive integer","messagePattern":"Port must be a positive integer","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"archive/v1/src/hardware/router_interface.py","lineNumber":70,"sourceCode":"        self.ssh_client = None\n    \n    def _validate_config(self, config: Dict[str, Any]) -> None:\n        \"\"\"Validate configuration parameters.\n        \n        Args:\n            config: Configuration to validate\n            \n        Raises:\n            ValueError: If configuration is invalid\n        \"\"\"\n        required_fields = ['host', 'port', 'username', 'password']\n        missing_fields = [field for field in required_fields if field not in config]\n        \n        if missing_fields:\n            raise ValueError(f\"Missing required configuration: {missing_fields}\")\n        \n        if not isinstance(config['port'], int) or config['port'] <= 0:\n            raise ValueError(\"Port must be a positive integer\")\n    \n    async def connect(self) -> bool:\n        \"\"\"Establish SSH connection to router.\n        \n        Returns:\n            True if connection successful, False otherwise\n        \"\"\"\n        try:\n            self.ssh_client = await asyncssh.connect(\n                self.host,\n                port=self.port,\n                username=self.username,\n                password=self.password,\n                connect_timeout=self.connection_timeout\n            )\n            self.is_connected = True\n            self.logger.info(f\"Connected to router at {self.host}:{self.port}\")\n            return True","sourceCodeStart":52,"sourceCodeEnd":88,"githubUrl":"https://github.com/ruvnet/RuView/blob/4685618388a5e49fad5b3005806f3bdd6a7c25c3/archive/v1/src/hardware/router_interface.py#L52-L88","documentation":"Error \"Port must be a positive integer\" thrown in ruvnet/RuView.","triggerScenarios":"Thrown at archive/v1/src/hardware/router_interface.py:70 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":"4685618388a5e49fad5b3005806f3bdd6a7c25c3","analyzedAt":"2026-08-16T06:09:40.886Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}