Skip to content

Repeated SIGABRT crash in GridHandler::resize (InitialCursorState::into_content_offset unwrap panic) #9013

Description

@choiseongh

Description

Warp crashes repeatedly with SIGABRT due to a Rust panic in the terminal grid resize path. The crash occurs when the terminal view layout triggers a resize operation, and InitialCursorState::into_content_offset encounters an unexpected Err value that is unwrap()-ed.

This is highly reproducible — 8 crashes recorded over the past week, with 7/8 sharing the exact same stack trace. On April 4th alone, Warp crashed 6 times.

Environment

  • Warp version: 0.2026.03.25.08.24.05 (Stable)
  • OS: macOS 26.3.1 (Build 25D771280a)
  • Hardware: MacBook Pro, Apple M3, 8 GB RAM
  • Architecture: ARM-64 (native, not translated)

Crash Stack Trace (faulting thread 0)

All crashes share this identical call chain:

 0  libsystem_kernel.dylib       __pthread_kill
 1  libsystem_pthread.dylib      pthread_kill
 2  libsystem_c.dylib            abort
 3  stable                       std::sys::pal::unix::abort_internal
 4  stable                       std::process::abort
 5  stable                       rust_panic
 6  stable                       std::panicking::panic_with_hook
 7  stable                       std::panicking::panic_handler
 8  stable                       std::sys::backtrace::__rust_end_short_backtrace
 9  stable                       rust_begin_unwind
10  stable                       core::panicking::panic_fmt
11  stable                       core::result::unwrap_failed          ← unwrap on Err
12  stable                       warp::terminal::model::grid::grid_handler::resize::InitialCursorState::into_content_offset
13  stable                       warp::terminal::model::grid::grid_handler::resize::GridHandler::resize_storage
14  stable                       warp::terminal::model::grid::grid_handler::resize::GridHandler::resize
15  stable                       warp::terminal::model::blocks::BlockList::resize
16  stable                       warp::terminal::model::terminal_model::TerminalModel::resize
17  stable                       warp::terminal::view::TerminalView::resize_internal
18  stable                       warp::terminal::view::TerminalView::after_terminal_view_layout

Crash Timeline

Timestamp Crash file
2026-03-29 20:42 stable-2026-03-29-204208.ips
2026-04-02 21:44 stable-2026-04-02-214416.ips
2026-04-04 16:22 stable-2026-04-04-162222.ips
2026-04-04 16:57 stable-2026-04-04-165702.ips
2026-04-04 17:00 stable-2026-04-04-165959.ips
2026-04-04 17:01 stable-2026-04-04-170142.ips
2026-04-04 17:12 stable-2026-04-04-171234.ips
2026-04-04 17:12 stable-2026-04-04-171242.ips

Suspected Trigger

The crash appears to be triggered by terminal resize events — possibly from:

  • Window resizing
  • Stage Manager view transitions
  • Split view changes
  • External display connect/disconnect

The root cause seems to be an invalid internal grid state when InitialCursorState::into_content_offset is called during GridHandler::resize_storage, causing an unwrap() on an Err result.

Suggested Fix

Consider replacing the unwrap() in InitialCursorState::into_content_offset with proper error handling (e.g., unwrap_or_default() or propagating the error) to prevent the panic, or validate the grid state before entering the resize path.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:performance:memoryMemory usage, allocation, leaks, and memory-bound performance.area:shell-terminalTerminal input/output, shell integration, prompt behavior, and block rendering.bugSomething isn't working.os:macmacOS-specific behavior, regressions, or requests.ready-to-implementThe issue is ready for implementation work.repro:highThe report includes enough evidence that the issue appears highly reproducible.triagedIssue has received an initial automated triage pass.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions