{"record":{"id":"389ec5c37d7c5c44","repo":"sxyazi/yazi","slug":"already-exists-in-package-toml","errorCode":null,"errorMessage":"{} `{}` already exists in package.toml","messagePattern":"(.+?) `(.+?)` already exists in package\\.toml","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"yazi-cli/src/package/package.rs","lineNumber":103,"sourceCode":"\t\t\t}\n\t\t}\n\n\t\toutln!(\"Flavors:\")?;\n\t\tfor d in &self.flavors {\n\t\t\tif d.rev.is_empty() {\n\t\t\t\toutln!(\"\\t{}\", d.r#use)?;\n\t\t\t} else {\n\t\t\t\toutln!(\"\\t{} ({})\", d.r#use, d.rev)?;\n\t\t\t}\n\t\t}\n\n\t\tOk(())\n\t}\n\n\tasync fn add(&mut self, r#use: &str) -> Result<()> {\n\t\tlet mut dep = Dependency::from_str(r#use)?;\n\t\tif let Some(d) = self.identical(&dep) {\n\t\t\tbail!(\n\t\t\t\t\"{} `{}` already exists in package.toml\",\n\t\t\t\tif d.is_flavor { \"Flavor\" } else { \"Plugin\" },\n\t\t\t\tdep.name\n\t\t\t)\n\t\t}\n\n\t\tdep.add(false).await?;\n\t\tif dep.is_flavor {\n\t\t\tself.flavors.push(dep);\n\t\t} else {\n\t\t\tself.plugins.push(dep);\n\t\t}\n\t\tOk(())\n\t}\n\n\tasync fn delete(&mut self, r#use: &str, discard: bool) -> Result<()> {\n\t\tlet Some(dep) = self.identical(&Dependency::from_str(r#use)?).cloned() else {\n\t\t\tbail!(\"`{}` was not found in package.toml\", r#use)","sourceCodeStart":85,"sourceCodeEnd":121,"githubUrl":"https://github.com/sxyazi/yazi/blob/5f901b886b14de1f17460b6e52e9de5d67f8aba9/yazi-cli/src/package/package.rs#L85-L121","documentation":"Duplicate-dependency guard in `Package::add`: after parsing the new `use` string, an identical plugin or flavor entry already exists in package.toml, so adding it again is rejected to avoid duplicates. The faulting input is the `r#use` string being added.","triggerScenarios":"Thrown at yazi-cli/src/package/package.rs:103 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Skip adding the dependency — it is already managed.","Update the existing entry instead of adding a new one.","Remove the duplicate with `ya pkg delete` first if you truly want to re-add it."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5f901b886b14de1f17460b6e52e9de5d67f8aba9","analyzedAt":"2026-09-02T18:38:25.566Z","contentChangedAt":"2026-09-02T18:38:25.566Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}