{"record":{"id":"8259bdd7d12972c4","repo":"nikivdev/code","slug":"port-80-is-already-in-use-by-stop-that-liste","errorCode":null,"errorMessage":"Port 80 is already in use by '{}'. Stop that listener, then retry `f domains up`.","messagePattern":"Port 80 is already in use by '(.+?)'\\. Stop that listener, then retry `f domains up`\\.","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/domains.rs","lineNumber":548,"sourceCode":"\nfn assert_no_port_80_conflict() -> Result<()> {\n    if let Some(owner) = docker_container_owning_port_80()? {\n        if owner != PROXY_CONTAINER_NAME {\n            bail!(\n                \"Port 80 is already owned by docker container '{}'. Stop it first (for example: docker stop {}).\",\n                owner,\n                owner\n            );\n        }\n        return Ok(());\n    }\n\n    if proxy_is_running()? {\n        return Ok(());\n    }\n\n    if let Some(listener) = port_80_listener_summary()? {\n        bail!(\n            \"Port 80 is already in use by '{}'. Stop that listener, then retry `f domains up`.\",\n            listener\n        );\n    }\n    Ok(())\n}\n\nfn port_80_listener_summary() -> Result<Option<String>> {\n    if which::which(\"lsof\").is_err() {\n        return Ok(None);\n    }\n    let output = Command::new(\"lsof\")\n        .args([\"-nP\", \"-iTCP:80\", \"-sTCP:LISTEN\"])\n        .output()\n        .context(\"Failed to inspect port 80 listeners\")?;\n    if !output.status.success() {\n        return Ok(None);\n    }","sourceCodeStart":530,"sourceCodeEnd":566,"githubUrl":"https://github.com/nikivdev/code/blob/a747e741ae92c09071d0ae946ab48488adcff1ce/src/domains.rs#L530-L566","documentation":"Error \"Port 80 is already in use by '{}'. Stop that listener, then retry `f domains up`.\" thrown in nikivdev/code.","triggerScenarios":"Thrown at src/domains.rs:548 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":"a747e741ae92c09071d0ae946ab48488adcff1ce","analyzedAt":"2026-09-01T22:43:55.719Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}