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

  1. Re-run the export command; prompt failures are often transient.
  2. Bypass the prompt by passing --on-conflict with an explicit behavior.
  3. 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)