Skip to content

Serverside panic on graph.get_relative_up(position).unwrap() #502

@patowen

Description

@patowen

If I launch Hypermine on the master branch with block_reach set to 2, I get the following panic:

2026-03-04T01:39:06.557360Z  INFO found config at $HOME/.config/hypermine/client.toml
2026-03-04T01:39:06.557490Z  INFO using save file $HOME/.local/share/hypermine/default.save
2026-03-04T01:39:06.569751Z  INFO spawning character id=f1644f405148e95c name=gyrola
2026-03-04T01:39:06.569772Z  INFO connected locally id=1v1

thread '<unnamed>' (17977) panicked at common/src/character_controller/mod.rs:37:45:
called `Option::unwrap()` on a `None` value
stack backtrace:
2026-03-04T01:39:06.584560Z  INFO Guessed window scale factor: 1
2026-03-04T01:39:06.813072Z  INFO Vulkan instance layers: ["VK_LAYER_VALVE_steam_fossilize_64", "VK_LAYER_VALVE_steam_overlay_64", "VK_LAYER_VALVE_steam_fossilize_32", "VK_LAYER_VALVE_steam_overlay_32", "VK_LAYER_MESA_device_select", "VK_LAYER_NV_optimus", "VK_LAYER_MESA_overlay", "VK_LAYER_INTEL_nullhw"]
2026-03-04T01:39:06.860890Z  INFO selected device name="NVIDIA GeForce RTX 3060"
   0: __rustc::rust_begin_unwind
             at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/panicking.rs:689:5
   1: core::panicking::panic_fmt
             at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/core/src/panicking.rs:80:14
   2: core::panicking::panic
             at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/core/src/panicking.rs:150:5
   3: core::option::unwrap_failed
             at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/core/src/option.rs:2175:5
   4: core::option::Option<T>::unwrap
             at /home/patrick/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:1016:21
   5: common::character_controller::run_character_step
             at ./common/src/character_controller/mod.rs:37:45
   6: server::sim::Sim::step
             at ./server/src/sim.rs:546:13
   7: server::Server::on_step
             at ./server/src/lib.rs:185:40
   8: server::Server::run::{{closure}}
             at ./server/src/lib.rs:140:44
   9: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.44/src/instrument.rs:321:15
  10: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /home/patrick/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:133:9
  11: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /home/patrick/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:133:9
  12: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:753:70
  13: tokio::task::coop::with_budget
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/task/coop/mod.rs:167:5
  14: tokio::task::coop::budget
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/task/coop/mod.rs:133:5
  15: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:753:25
  16: tokio::runtime::scheduler::current_thread::Context::enter
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:442:19
  17: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:752:44
  18: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:840:68
  19: tokio::runtime::context::scoped::Scoped<T>::set
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context/scoped.rs:40:9
  20: tokio::runtime::context::set_scheduler::{{closure}}
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context.rs:176:38
  21: std::thread::local::LocalKey<T>::try_with
             at /home/patrick/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:513:12
  22: std::thread::local::LocalKey<T>::with
             at /home/patrick/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:477:20
  23: tokio::runtime::context::set_scheduler
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context.rs:176:17
  24: tokio::runtime::scheduler::current_thread::CoreGuard::enter
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:840:27
  25: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:740:24
  26: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:200:33
  27: tokio::runtime::context::runtime::enter_runtime
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context/runtime.rs:65:16
  28: tokio::runtime::scheduler::current_thread::CurrentThread::block_on
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:188:9
  29: tokio::runtime::runtime::Runtime::block_on_inner
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/runtime.rs:368:52
  30: tokio::runtime::runtime::Runtime::block_on
             at /home/patrick/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/runtime.rs:340:18
  31: client::main::{{closure}}
             at ./client/src/main.rs:59:25
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
2026-03-04T01:39:08.125104Z  INFO exiting due to closed window

The game is still playable, with just the client active, not the server, so I cannot, for instance, break or place any blocks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions