tonhowtf/omniget · error
reg add falhou
Error message
reg add falhou: {} What it means
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.
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
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at src-tauri/omniget-core/src/core/tools/win_registry.rs:131 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/94bd966ab2b81bc4.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-core/src/core/tools/win_registry.rs:131
"reg delete falhou: {}",
String::from_utf8_lossy(&o.stderr).trim()
));
}
Ok(())
}
pub async fn reg_add(key: &str, value: &str, kind: &str, data: &str) -> anyhow::Result<()> {
let mut cmd = crate::core::process::command("reg");
cmd.arg("add").arg(key);
if value.is_empty() {
cmd.arg("/ve");
} else {
cmd.arg("/v").arg(value);
}
cmd.arg("/t").arg(kind).arg("/d").arg(data).arg("/f");
let o = cmd.output().await?;
if !o.status.success() {
return Err(anyhow!(
"reg add falhou: {}",
String::from_utf8_lossy(&o.stderr).trim()
));
}
Ok(())
}
pub fn backups_dir() -> Option<PathBuf> {
super::tools_dir().map(|d| d.join("registry-backups"))
}
/// `reg export` da chave para um `.reg` com carimbo de hora. Devolve o caminho.
pub async fn reg_backup(key: &str) -> anyhow::Result<PathBuf> {
let dir = backups_dir().ok_or_else(|| anyhow!("sem pasta de dados"))?;
std::fs::create_dir_all(&dir)?;
let safe: String = key
.chars()
.map(|c| if c.is_ascii_alphanumeric() { c } else { '_' })View on GitHub (pinned to 8600b91f42)