ramensoftware/windhawk · info
- apply the archived Windhawk app settings
Error message
- apply the archived Windhawk app settings
What it means
One line of the `data import` dry-run plan: ' - apply the archived Windhawk app settings'. It is printed when the selection includes app settings and the archive actually contains them, telling the user that global Windhawk settings will be overwritten on the real run.
Solutions
- This is informational only; add `--yes` to proceed with the import
- Exclude app settings from the selection if you do not want them applied
- Compare current app settings with the archive first if the overwrite is a concern
Defensive patterns
Strategy: validation
Validate before calling
if wants_app_settings_import && archive_has_app_settings { confirm_overwrite(); } Try / catch
null
Prevention
- Backup current app settings before a --yes import
- Use selection flags to exclude app settings if not wanted
When it happens
Trigger: Running `data import` without `--yes` on an archive whose appSettings are present, with app settings enabled in the selection (default or via flags).
Common situations: Users restoring a full backup and reviewing exactly what will be touched before committing; scripts diffing dry-run output before automating with `--yes`.
Understand the failure class
Background: "--flag is required" and "must specify" CLI errors: how missing-required-flag validation works and how to fix it — this error's family across 20 libraries.
Related errors
AI-assisted analysis of ramensoftware/windhawk@61d99ed8e1 (2026-09-12).
Data as JSON: /api/errors/7f47fb7e22b1023b.
Report an issue: GitHub.
Appendix: source
Thrown at src/windhawk-core/cli/src/commands/data.rs:203
ModScope::Keyword(ModScopeKeyword::AllExceptLocal) => {
all().filter(|id| !is_local_id(id)).collect()
}
ModScope::Keyword(ModScopeKeyword::All) => all().collect(),
}
}
/// Print the planned import actions to stderr, so a run without `--yes` shows
/// what it would do before refusing (exit 2).
fn print_import_plan(
env: &Environment,
manifest: &UserDataManifest,
selection: &UserDataSelection,
) {
let scope = import_scope_ids(manifest, &selection.mods);
env.logger.warn("data import would (with --yes):");
if selection.app_settings && manifest.has_app_settings {
env.logger
.warn(" - apply the archived Windhawk app settings");
}
env.logger
.warn(&format!(" - import {} mod(s):", scope.len()));
for m in &manifest.mods {
if scope.contains(&m.mod_id) {
env.logger
.warn(&format!(" {} {}", m.mod_id, m.version));
}
}
}
/// Render a core import-progress event on stderr (via the logger, so `--quiet`
/// suppresses the informational lines but keeps failure warnings). A stamped
/// `compileTarget` event names the mod being compiled; the per-mod
/// `ImportProgress` markers report the start and terminal outcome of each mod.
fn report_import_progress(logger: Logger, event: &OperationEvent) {
let OperationEvent::Progress { payload } = event else {
return;View on GitHub (pinned to 61d99ed8e1)