pbakaus/impeccable · error

{}

Error message

{}

What it means

handle_poll_error maps PollError::AckTimeout(m) to this catch-all: it prints the pre-rendered timeout message `m` verbatim to stderr and exits with code 1. The live server accepted the connection but never acknowledged a poll/apply request in time.

Source

Thrown at crates/live/src/live_poll.rs:654

    match err {
        PollError::Auth => {
            io.err("Authentication failed. The server token may have changed.\n");
            io.err(&format!(
                "Try restarting: {} stop && {}\n",
                script_cmd(&env, &cwd, "live-server"),
                script_cmd(&env, &cwd, "live")
            ));
            1
        }
        PollError::ConnRefused => {
            io.err(&format!(
                "Live server not running. Start one with: {}\n",
                script_cmd(&env, &cwd, "live")
            ));
            1
        }
        PollError::AckTimeout(m) => {
            io.err(&format!("{}\n", m));
            1
        }
        PollError::Other(m) => {
            io.err(&format!("Poll failed: {}\n", m));
            1
        }
    }
}

fn arg_value_int(args: &[String], prefix: &str, default: i64) -> i64 {
    match args.iter().find(|a| a.starts_with(prefix)) {
        Some(a) => {
            let raw = a.splitn(2, '=').nth(1).unwrap_or("");
            let n = impeccable_core::js::parse_int(raw, 10);
            if n.is_nan() {
                i64::MIN
            } else {
                n as i64

View on GitHub (pinned to 2bc2879276)

Solutions

  1. Read the printed message `m` for which operation timed out, then retry the poll.
  2. Restart the live server if it stays unresponsive: `<live-server> stop && <live>`.
  3. Reduce per-change work (smaller edits) or increase the ack timeout if configurable.
Defensive patterns

Strategy: retry

Try / catch

try {
  await sendWithAck(request, ackTimeoutMs);
} catch (err) {
  if (err.kind === 'ack-timeout') {
    await restartLiveServer();
    return sendWithAck(request, ackTimeoutMs);
  }
  throw err;
}

Prevention

When it happens

Trigger: PollError::AckTimeout with a formatted message — the server received a request but its acknowledgement exceeded the timeout (server busy, hung dev server, or expensive rebuild).

Common situations: Dev server frozen compiling a large change; browser tab holding the live session wedged; machine under heavy load delaying the ack.

Understand the failure class

Background: Request timed out: what client-side request timeouts mean across libraries (Request timed out, TIMED_OUT, APITimeoutError) — this error's family across 39 libraries.

Related errors


AI-assisted analysis of pbakaus/impeccable@2bc2879276 (2026-09-08). Data as JSON: /api/errors/76d0ddb4249626d4. Report an issue: GitHub.