{"record":{"id":"20fefb55025c2b83","repo":"nikivdev/code","slug":"port-80-is-already-owned-by-docker-container","errorCode":null,"errorMessage":"Port 80 is already owned by docker container '{}'. Stop it first (for example: docker stop {}).","messagePattern":"Port 80 is already owned by docker container '(.+?)'\\. Stop it first \\(for example: docker stop (.+?)\\)\\.","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/domains.rs","lineNumber":534,"sourceCode":"    if !output.status.success() {\n        return Ok(None);\n    }\n    let text = String::from_utf8_lossy(&output.stdout);\n    for line in text.lines() {\n        let mut parts = line.splitn(2, '\\t');\n        let name = parts.next().unwrap_or(\"\").trim();\n        let ports = parts.next().unwrap_or(\"\");\n        if ports.contains(\":80->80/tcp\") {\n            return Ok(Some(name.to_string()));\n        }\n    }\n    Ok(None)\n}\n\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    }","sourceCodeStart":516,"sourceCodeEnd":552,"githubUrl":"https://github.com/nikivdev/code/blob/a747e741ae92c09071d0ae946ab48488adcff1ce/src/domains.rs#L516-L552","documentation":"Error \"Port 80 is already owned by docker container '{}'. Stop it first (for example: docker stop {}).\" thrown in nikivdev/code.","triggerScenarios":"Thrown at src/domains.rs:534 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"}