{"record":{"id":"f7b134abe51e2c39","repo":"zellij-org/zellij","slug":"the-layout-was-not-found","errorCode":null,"errorMessage":"The layout was not found","messagePattern":"The layout was not found","errorType":"validation","errorClass":"ConfigError","httpStatus":null,"severity":"error","filePath":"zellij-utils/src/input/layout.rs","lineNumber":1653,"sourceCode":"                    \"Compact layout swap\".into(),\n                    Self::stringified_compact_swap_from_assets()?,\n                )),\n            )),\n            Some(\"classic\") => Ok((\n                \"Classic layout\".into(),\n                Self::stringified_classic_from_assets()?,\n                Some((\n                    \"Classiclayout swap\".into(),\n                    Self::stringified_classic_swap_from_assets()?,\n                )),\n            )),\n            Some(\"welcome\") => Ok((\n                \"Welcome screen layout\".into(),\n                Self::stringified_welcome_from_assets()?,\n                None,\n            )),\n            None | Some(_) => Err(ConfigError::IoPath(\n                std::io::Error::new(std::io::ErrorKind::Other, \"The layout was not found\"),\n                path.into(),\n            )),\n        }\n    }\n    pub fn stringified_default_from_assets() -> Result<String, ConfigError> {\n        Ok(String::from_utf8(setup::DEFAULT_LAYOUT.to_vec())?)\n    }\n    pub fn stringified_default_swap_from_assets() -> Result<String, ConfigError> {\n        Ok(String::from_utf8(setup::DEFAULT_SWAP_LAYOUT.to_vec())?)\n    }\n    pub fn stringified_strider_from_assets() -> Result<String, ConfigError> {\n        Ok(String::from_utf8(setup::STRIDER_LAYOUT.to_vec())?)\n    }\n    pub fn stringified_strider_swap_from_assets() -> Result<String, ConfigError> {\n        Ok(String::from_utf8(setup::STRIDER_SWAP_LAYOUT.to_vec())?)\n    }\n\n    pub fn stringified_disable_status_from_assets() -> Result<String, ConfigError> {","sourceCodeStart":1635,"sourceCodeEnd":1671,"githubUrl":"https://github.com/zellij-org/zellij/blob/98a0837077492d53dd252ab30bc3e43e41e504f4/zellij-utils/src/input/layout.rs#L1635-L1671","documentation":"ConfigError::IoPath produced by Layout::from_assets when the requested builtin layout name is none of default, strider, classic, welcome. The match's None | Some(_) wildcard converts any unrecognized name into an io::Error with the path attached, indicating a builtin asset lookup miss rather than a filesystem failure.","triggerScenarios":"Requesting a builtin layout asset by a name outside the four known ones, e.g. `zellij setup --dump-layout mylayout` or code calling Layout::from_assets(Some(\"custom\")) expecting user layouts to resolve.","commonSituations":"Confusing builtin assets with user layouts installed under the layout dir; typos in layout names; kdl configs referencing a layout that was never installed.","solutions":["Use a supported builtin name: default, strider, classic, or welcome","For user layouts, place the .kdl file in the layout directory and reference it by name/path through the normal layout loader, not from_assets","Check `zellij setup --check` for the layout search path and confirm the file exists there"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"const BUILTIN_LAYOUTS: &[&str] = &[\"default\", \"strider\", \"classic\", \"welcome\"];\nfn layout_is_builtin(name: &str) -> bool {\n    BUILTIN_LAYOUTS.contains(&name)\n}","typeGuard":"fn is_builtin_layout(name: Option<&str>) -> bool {\n    matches!(name, Some(\"default\") | Some(\"strider\") | Some(\"classic\") | Some(\"welcome\"))\n}","tryCatchPattern":"match Layout::from_assets(&name) {\n    Ok((_, layout, _)) => Ok(layout),\n    Err(ConfigError::IoPath(e, path)) if e.to_string().contains(\"not found\") => {\n        Err(anyhow!(\"builtin layout '{}' not found at {} — install it or use default\", name, path.display()))\n    },\n    Err(e) => Err(e.into()),\n}","preventionTips":["Use only the four builtin names with from_assets; resolve user layouts through the layout-dir loader","Run `zellij setup --check` to confirm layout search paths","Verify layout names in configs with `zellij setup --check` or a dry run"],"tags":["layouts","setup","assets","config"],"backgroundTag":null,"analyzedSha":"98a0837077492d53dd252ab30bc3e43e41e504f4","analyzedAt":"2026-08-16T13:02:01.396Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}