{"record":{"id":"0defecaaf3d5f633","repo":"apache/dolphinscheduler","slug":"the-specified-network-interface-specifiednetwor","errorCode":null,"errorMessage":"The specified network interface: + specifiedNetworkInterfaceName + is not found","messagePattern":"The specified network interface: \\+ specifiedNetworkInterfaceName \\+ is not found","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/NetUtils.java","lineNumber":230,"sourceCode":"                        return !(networkInterface == null\n                                || networkInterface.isLoopback()\n                                || networkInterface.isVirtual()\n                                || !networkInterface.isUp());\n                    } catch (SocketException e) {\n                        log.warn(\"ValidNetworkInterfaces exception\", e);\n                        return false;\n                    }\n                })\n                .collect(Collectors.toList());\n\n        // Use the specified network interface if set\n        String specifiedNetworkInterfaceName = specifyNetworkInterfaceName();\n        if (StringUtils.isNotBlank(specifiedNetworkInterfaceName)) {\n            validNetworkInterfaces = validNetworkInterfaces.stream()\n                    .filter(networkInterface -> specifiedNetworkInterfaceName.equals(networkInterface.getDisplayName()))\n                    .collect(Collectors.toList());\n            if (CollectionUtils.isEmpty(validNetworkInterfaces)) {\n                throw new IllegalArgumentException(\n                        \"The specified network interface: \" + specifiedNetworkInterfaceName + \" is not found\");\n            }\n            log.info(\"Use the specified network interface: {} -> {}\", specifiedNetworkInterfaceName,\n                    validNetworkInterfaces);\n        }\n\n        Set<String> restrictNetworkInterfaceName = restrictNetworkInterfaceName();\n        if (CollectionUtils.isNotEmpty(restrictNetworkInterfaceName)) {\n            validNetworkInterfaces = validNetworkInterfaces.stream()\n                    .filter(validNetworkInterface -> !restrictNetworkInterfaceName\n                            .contains(validNetworkInterface.getDisplayName()))\n                    .collect(Collectors.toList());\n        }\n        return filterByNetworkPriority(validNetworkInterfaces);\n    }\n\n    /**\n     * Get the suitable {@link InetAddress}","sourceCodeStart":212,"sourceCodeEnd":248,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/NetUtils.java#L212-L248","documentation":"NetUtils.suitableNetworkInterface() filters the list of valid network interfaces down to the one named by the 'network.interface.specified' configuration. If no interface with that display name exists on the machine, the filter yields an empty list and this IllegalArgumentException is thrown instead of returning a wrong/ambiguous address.","triggerScenarios":"Setting the network interface config property (dolphin.network.interface.preferred / specifyNetworkInterfaceName) to a name that does not match any NetworkInterface.getDisplayName() on the host, e.g. 'eth0' on a system where interfaces are named 'ens33' or 'en0'.","commonSituations":"Copying a config from one machine to another with different NIC naming schemes; Docker/Kubernetes container interface names differing from the host; typos in the config value; renamed interfaces after an OS upgrade.","solutions":["Run 'ip a' (Linux) or 'ifconfig -a' and set the config to an exact interface display name (e.g. ens33, en0), or remove the config to auto-select","Check for typos/case: the comparison is exact against NetworkInterface.getDisplayName(), not getName()","If running in a container, use the container's interface name (usually eth0) rather than the host's"],"exampleFix":"// before (application.yaml)\nnetwork.interface.preferred: eth0   # not found on host\n// after\nnetwork.interface.preferred: ens33  # or remove the key to auto-detect","handlingStrategy":"validation","validationCode":"String name = specifyNetworkInterfaceName();\nif (StringUtils.isNotBlank(name)) {\n    boolean exists = Collections.list(NetworkInterface.getNetworkInterfaces()).stream()\n        .anyMatch(ni -> name.equals(ni.getDisplayName()));\n    if (!exists) throw new IllegalArgumentException(\"Unknown NIC: \" + name);\n}","typeGuard":null,"tryCatchPattern":"try { suitableNetworkInterface(); } catch (IllegalArgumentException e) { log.error(\"NIC config invalid, falling back to auto-detect\", e); /* fall back to default interface */ }","preventionTips":["List actual interface names with 'ip a' before configuring","Avoid hardcoding NIC names in shared configs; use environment-specific values","Prefer leaving the property unset to allow auto-selection"],"tags":["network","configuration","illegal-argument"],"backgroundTag":"resource-not-found","analyzedSha":"02eac45a1b6676e639fcbfb4be2243de5771b05d","analyzedAt":"2026-09-06T17:43:00.555Z","contentChangedAt":"2026-09-06T17:43:00.555Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}