flxzt/rnote · error
Failed to show select prompt, retry or select the behavior…
Error message
Failed to show select prompt, retry or select the behavior with"--on-conflict", Err: {e:?} What it means
Error wrapper in file_conflict_prompt_action: the dialoguer::Select prompt for resolving an existing output file returned an error while awaiting the user's choice in the OnConflict::Ask loop. The terminal was interactive, but the prompt itself failed (e.g. closed/interrupted input stream).
Solutions
- Re-run the export command; prompt failures are often transient.
- Bypass the prompt by passing --on-conflict with an explicit behavior.
- Ensure stdin/stdout are usable by an interactive TTY prompt when relying on Ask.
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at crates/rnote-cli/src/export.rs:475 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of flxzt/rnote@bbc5354502 (2026-09-08).
Data as JSON: /api/errors/67b7c16b551599b4.
Report an issue: GitHub.
Appendix: source
Thrown at crates/rnote-cli/src/export.rs:475
if !io::stdout().is_terminal() {
return Err(anyhow::anyhow!(
"File conflict for file \"{}\" detected and terminal is not interactive. Option \"--on-conflict\" needs to be supplied.",
output_file.display()
));
}
match dialoguer::Select::new()
.with_prompt(format!(
"File \"{}\" already exists:",
output_file.display()
))
.items(options)
.default(1)
.interact()
{
Ok(0) => cli::open_file_default_app(output_file)?,
Ok(c) => on_conflict = options[c],
Err(e) => {
return Err(anyhow::anyhow!(
"Failed to show select prompt, retry or select the behavior with\"--on-conflict\", Err: {e:?}"
));
}
};
}
}
};
match on_conflict {
OnConflict::Ask => {
return Err(anyhow::anyhow!(
"on-conflict behaviour is still Ask after prompting the user."
));
}
OnConflict::AlwaysOverwrite => {
on_conflict = OnConflict::Overwrite;
*on_conflict_overwrite = Some(on_conflict);
}
OnConflict::AlwaysSkip => {View on GitHub (pinned to bbc5354502)