{"record":{"id":"78820dca7ab36b0c","repo":"FuelLabs/sway","slug":"found-invalid-root-file-path-for-make-sure-your","errorCode":null,"errorMessage":"found invalid root file path for {}\nmake sure your project's name contains only valid unicode characters","messagePattern":"found invalid root file path for (.+?)\nmake sure your project's name contains only valid unicode characters","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"forc-plugins/forc-doc/src/render/sidebar.rs","lineNumber":75,"sourceCode":"            DocStyle::WorkspaceIndex => {\n                format!(\"Workspace {}\", self.module_info.location())\n            }\n            DocStyle::ModuleIndex => format!(\n                \"{} {}\",\n                BlockTitle::Modules.item_title_str(),\n                self.module_info.location()\n            ),\n            DocStyle::Item { title, name } => {\n                let title = title.clone().expect(\"Expected a BlockTitle\");\n                let name = name.clone().expect(\"Expected a BaseIdent\");\n                format!(\"{} {}\", title.item_title_str(), name.as_str())\n            }\n        };\n        let root_path = self.module_info.to_html_shorthand_path_string(\n            PathBuf::from(self.module_info.project_name())\n                .join(INDEX_FILENAME)\n                .to_str()\n                .ok_or_else(|| anyhow::anyhow!(\n                    \"found invalid root file path for {}\\nmake sure your project's name contains only valid unicode characters\",\n                    self.module_info.project_name(),\n                ))?,\n        );\n        let logo_path_to_root = match style {\n            DocStyle::AllDoc(_) | DocStyle::Item { .. } | DocStyle::ModuleIndex => root_path,\n            DocStyle::ProjectIndex(_) | DocStyle::WorkspaceIndex => IDENTITY.to_owned(),\n        };\n        // Unfortunately, match arms that return a closure, even if they are the same\n        // type, are incompatible. The work around is to return a String instead,\n        // and render it from Raw in the final output.\n        let styled_content = match &self.style {\n            DocStyle::WorkspaceIndex => {\n                let nav_links = &self.nav.links;\n                box_html! {\n                    div(class=\"sidebar-elems\") {\n                        section {\n                            div(class=\"block\") {","sourceCodeStart":57,"sourceCodeEnd":93,"githubUrl":"https://github.com/FuelLabs/sway/blob/47e5e902faa42baf652dd6a0c88cd23390c1a614/forc-plugins/forc-doc/src/render/sidebar.rs#L57-L93","documentation":"Error \"found invalid root file path for {}\nmake sure your project's name contains only valid unicode characters\" thrown in FuelLabs/sway.","triggerScenarios":"Thrown at forc-plugins/forc-doc/src/render/sidebar.rs:75 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":"47e5e902faa42baf652dd6a0c88cd23390c1a614","analyzedAt":"2026-08-16T07:57:45.555Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}