{"record":{"id":"5e005dc1f42f12fa","repo":"nikivdev/code","slug":"target-host-is-empty","errorCode":null,"errorMessage":"Target host is empty","messagePattern":"Target host is empty","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/domains.rs","lineNumber":311,"sourceCode":"    let mut target = raw.trim().to_string();\n    if let Some(stripped) = target.strip_prefix(\"http://\") {\n        target = stripped.to_string();\n    } else if let Some(stripped) = target.strip_prefix(\"https://\") {\n        target = stripped.to_string();\n    }\n    target = target.trim_end_matches('/').to_string();\n    if target.is_empty() {\n        bail!(\"Target is empty\");\n    }\n    if target.contains('/') || target.contains('?') || target.contains('#') {\n        bail!(\"Target must be host:port\");\n    }\n\n    let (host, port) = target\n        .rsplit_once(':')\n        .context(\"Target must include port (for example: 127.0.0.1:3481)\")?;\n    if host.trim().is_empty() {\n        bail!(\"Target host is empty\");\n    }\n    let port_num = port\n        .trim()\n        .parse::<u16>()\n        .context(\"Target port must be a valid number\")?;\n    Ok(format!(\"{}:{}\", host.trim(), port_num))\n}\n\nfn ensure_layout(paths: &DomainsPaths) -> Result<()> {\n    fs::create_dir_all(paths.routes_dir.as_path())?;\n    if let Some(parent) = paths.nginx_main.parent() {\n        fs::create_dir_all(parent)?;\n    }\n    fs::write(&paths.compose, COMPOSE_FILE)?;\n    fs::write(&paths.nginx_main, NGINX_MAIN_CONF)?;\n\n    if !paths.routes_state.exists() {\n        fs::write(&paths.routes_state, \"{}\\n\")?;","sourceCodeStart":293,"sourceCodeEnd":329,"githubUrl":"https://github.com/nikivdev/code/blob/a747e741ae92c09071d0ae946ab48488adcff1ce/src/domains.rs#L293-L329","documentation":"Error \"Target host is empty\" thrown in nikivdev/code.","triggerScenarios":"Thrown at src/domains.rs:311 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"}