{"record":{"id":"b1fbdb58b37deb48","repo":"Hmbown/CodeWhale","slug":"installed-plugin-has-no-supported-manifest","errorCode":null,"errorMessage":"installed plugin has no supported manifest","messagePattern":"installed plugin has no supported manifest","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/tui/src/plugins/install/place.rs","lineNumber":91,"sourceCode":"    // Write the marker last so a partial install never leaves a stale\n    // `.installed-from` on disk.\n    if let Err(error) = skill_install::write_installed_from_v2(\n        &final_path,\n        spec,\n        url,\n        source_checksum,\n        &staged.content_hash,\n        &staged.name,\n    ) {\n        let _ = fs::remove_dir_all(&final_path);\n        if let Some(backup) = backup_path.take() {\n            let _ = fs::rename(&backup, &final_path);\n        }\n        return Err(error);\n    }\n    let installed_content_hash =\n        match crate::plugins::agent_plugin::resolve_manifest_path(&final_path)\n            .ok_or_else(|| anyhow::anyhow!(\"installed plugin has no supported manifest\"))\n            .and_then(|manifest_path| {\n                crate::plugins::manifest::PluginManifest::validate_from_path(&manifest_path)\n                    .map(|validated| validated.content_hash)\n                    .map_err(anyhow::Error::msg)\n            }) {\n            Ok(hash) => hash,\n            Err(error) => {\n                let _ = fs::remove_dir_all(&final_path);\n                if let Some(backup) = backup_path.take() {\n                    let _ = fs::rename(&backup, &final_path);\n                }\n                return Err(error).context(\"installed plugin failed post-copy validation\");\n            }\n        };\n    if let Some(backup) = backup_path {\n        fs::remove_dir_all(&backup).ok();\n    }\n","sourceCodeStart":73,"sourceCodeEnd":109,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/8880682c63083a91624de936797efa3ce9e498fd/crates/tui/src/plugins/install/place.rs#L73-L109","documentation":"Error \"installed plugin has no supported manifest\" thrown in Hmbown/CodeWhale.","triggerScenarios":"Thrown at crates/tui/src/plugins/install/place.rs:91 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":"8880682c63083a91624de936797efa3ce9e498fd","analyzedAt":"2026-08-16T11:31:27.956Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}