{"record":{"id":"28bb05b8a500bc19","repo":"DioxusLabs/dioxus","slug":"could-not-receive-a-socket-the-devtools-could-no","errorCode":null,"errorMessage":"Could not receive a socket - the devtools could not boot - the port is likely already in use","messagePattern":"Could not receive a socket - the devtools could not boot - the port is likely already in use","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/cli/src/serve/server.rs","lineNumber":156,"sourceCode":"            .hot_reload_sockets\n            .iter_mut()\n            .enumerate()\n            .map(|(idx, socket)| async move { (idx, socket.socket.next().await) })\n            .collect::<FuturesUnordered<_>>();\n\n        tokio::select! {\n            new_hot_reload_socket = &mut new_hot_reload_socket => {\n                if let Some(new_socket) = new_hot_reload_socket {\n                    let aslr_reference = new_socket.aslr_reference;\n                    let pid = new_socket.pid;\n                    let id = new_socket.build_id.unwrap_or(BuildId::PRIMARY);\n\n                    drop(new_message);\n                    self.hot_reload_sockets.push(new_socket);\n\n                    return ServeUpdate::NewConnection { aslr_reference, id, pid };\n                } else {\n                    panic!(\"Could not receive a socket - the devtools could not boot - the port is likely already in use\");\n                }\n            }\n            new_build_status_socket = &mut new_build_status_socket => {\n                if let Some(mut new_socket) = new_build_status_socket {\n                    drop(new_message);\n\n                    // Update the socket with project info and current build status\n                    let project_info = SharedStatus::new(Status::ClientInit { application_name: self.application_name.clone(), bundle: self.bundle });\n                    if project_info.send_to(&mut new_socket.socket).await.is_ok() {\n                        _ = self.build_status.send_to(&mut new_socket.socket).await;\n                        self.build_status_sockets.push(new_socket);\n                    }\n                    return future::pending::<ServeUpdate>().await;\n                } else {\n                    panic!(\"Could not receive a socket - the devtools could not boot - the port is likely already in use\");\n                }\n            }\n            Some((idx, message)) = new_message.next() => {","sourceCodeStart":138,"sourceCodeEnd":174,"githubUrl":"https://github.com/DioxusLabs/dioxus/blob/24f6a829df0dfa203961a98ea4cae21c2ff27e28/packages/cli/src/serve/server.rs#L138-L174","documentation":"The dev server's select loop could not obtain a socket from a devtools connection: the devtools failed to boot, most likely because the hot-reload port is already bound by another process. The socket stream yielded None, so hot-reload connections cannot be established.","triggerScenarios":"Thrown at packages/cli/src/serve/server.rs:156 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Another process (usually a previous dx serve) holds the devtools port. Stop it or start dx with a different port."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"24f6a829df0dfa203961a98ea4cae21c2ff27e28","analyzedAt":"2026-08-23T07:10:14.078Z","contentChangedAt":"2026-08-23T07:10:14.078Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}