{"record":{"id":"94bd966ab2b81bc4","repo":"tonhowtf/omniget","slug":"reg-add-falhou","errorCode":null,"errorMessage":"reg add falhou: {}","messagePattern":"reg add falhou: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src-tauri/omniget-core/src/core/tools/win_registry.rs","lineNumber":131,"sourceCode":"            \"reg delete falhou: {}\",\n            String::from_utf8_lossy(&o.stderr).trim()\n        ));\n    }\n    Ok(())\n}\n\npub async fn reg_add(key: &str, value: &str, kind: &str, data: &str) -> anyhow::Result<()> {\n    let mut cmd = crate::core::process::command(\"reg\");\n    cmd.arg(\"add\").arg(key);\n    if value.is_empty() {\n        cmd.arg(\"/ve\");\n    } else {\n        cmd.arg(\"/v\").arg(value);\n    }\n    cmd.arg(\"/t\").arg(kind).arg(\"/d\").arg(data).arg(\"/f\");\n    let o = cmd.output().await?;\n    if !o.status.success() {\n        return Err(anyhow!(\n            \"reg add falhou: {}\",\n            String::from_utf8_lossy(&o.stderr).trim()\n        ));\n    }\n    Ok(())\n}\n\npub fn backups_dir() -> Option<PathBuf> {\n    super::tools_dir().map(|d| d.join(\"registry-backups\"))\n}\n\n/// `reg export` da chave para um `.reg` com carimbo de hora. Devolve o caminho.\npub async fn reg_backup(key: &str) -> anyhow::Result<PathBuf> {\n    let dir = backups_dir().ok_or_else(|| anyhow!(\"sem pasta de dados\"))?;\n    std::fs::create_dir_all(&dir)?;\n    let safe: String = key\n        .chars()\n        .map(|c| if c.is_ascii_alphanumeric() { c } else { '_' })","sourceCodeStart":113,"sourceCodeEnd":149,"githubUrl":"https://github.com/tonhowtf/omniget/blob/8600b91f4246848bac346874daa9e61c1fc5677a/src-tauri/omniget-core/src/core/tools/win_registry.rs#L113-L149","documentation":"The Windows `reg add` command exited non-zero; the {} is reg.exe's trimmed stderr. reg_add builds /v (or /ve for empty value names) plus /t, /d and /f, so failures usually mean an invalid data type, an inaccessible key, or data rejected by the value's type.","triggerScenarios":"Thrown at src-tauri/omniget-core/src/core/tools/win_registry.rs:131 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the `kind` argument is a valid reg type (REG_SZ, REG_DWORD, etc.) matching the data being written","Run the app elevated when writing under HKEY_LOCAL_MACHINE","Run the equivalent `reg add` command manually to see reg.exe's complaint"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8600b91f4246848bac346874daa9e61c1fc5677a","analyzedAt":"2026-09-12T14:29:19.317Z","contentChangedAt":"2026-09-12T14:29:19.317Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}