herdrdev/herdr · warning · io::Error

opening scrollback in an editor is not supported on this pla

Error message

opening scrollback in an editor is not supported on this platform

What it means

scrollback_editor_argv on the fallback (unsupported) platform always returns Unsupported instead of an argv for opening scrollback in an editor. It is a stub compiled for platforms where Herdr has no editor integration, so any caller attempting to open scrollback externally gets this error.

Source

Thrown at src/platform/fallback.rs:153

    let argv = raw_command_argv(command, "-lc");
    let mut command = std::process::Command::new(&argv[0]);
    command.args(&argv[1..]);
    command
}

pub(crate) fn pane_custom_command_pty_builder_platform(
    command: &str,
) -> portable_pty::CommandBuilder {
    portable_pty::CommandBuilder::from_argv(raw_command_argv(command, "-c"))
}

pub(crate) fn interactive_shell_command(_argv: &[String], _shell_name: &str) -> Option<String> {
    None
}

/// Unsupported platform stub.
pub(crate) fn scrollback_editor_argv(_path: &std::path::Path) -> std::io::Result<Vec<String>> {
    Err(std::io::Error::new(
        std::io::ErrorKind::Unsupported,
        "opening scrollback in an editor is not supported on this platform",
    ))
}

/// Unsupported platform stub.
pub fn detach_server_daemon_command(_command: &mut Command) {}

/// Unsupported platform stub.
pub fn current_process_is_detached_server_daemon() -> bool {
    false
}

pub(crate) fn available_pane_shell(_child_pid: u32) -> Option<String> {
    None
}

/// Unsupported platform stub.

View on GitHub (pinned to f457cff4f2)

Solutions

  1. Build/run Herdr on a supported platform (Linux, macOS, Windows) where scrollback_editor_argv is implemented
  2. If porting Herdr, implement scrollback_editor_argv in a new src/platform/<os>.rs and wire it into the platform selection
  3. Disable or hide the open-in-editor affordance when std::io::ErrorKind::Unsupported is returned
Defensive patterns

Strategy: fallback

Validate before calling

// capability probe before exposing the action
let supported = scrollback_editor_argv(std::path::Path::new("probe"))
    .map(|_| true)
    .map_err(|e| e.kind() == std::io::ErrorKind::Unsupported)
    .is_ok();

Try / catch

match scrollback_editor_argv(path) {
    Ok(argv) => open_editor(argv),
    Err(e) if e.kind() == std::io::ErrorKind::Unsupported => hide_action_or_inform_user(),
    Err(e) => log_and_report(e),
}

Prevention

When it happens

Trigger: Triggering the 'open scrollback in editor' action on a platform compiled against src/platform/fallback.rs (an OS outside windows/macos/linux/unix targets). Any keybinding or command that resolves the editor argv will immediately fail.

Common situations: Building Herdr for an exotic target (e.g. some BSDs, wasm, or a new OS port) that maps to the fallback platform module; attempting editor scrollback there. End users on supported platforms never see it.

Related errors


AI-assisted analysis of herdrdev/herdr@f457cff4f2 (2026-08-28). Data as JSON: /api/errors/4c1f0d64135bcab4. Report an issue: GitHub.