Skip to content

fix(server): surface a typed error when world_engine is requested on Apple Silicon - #143

Open
juraam wants to merge 1 commit into
Overworldai:mainfrom
juraam:fix/incompatible-hardware-error
Open

fix(server): surface a typed error when world_engine is requested on Apple Silicon#143
juraam wants to merge 1 commit into
Overworldai:mainfrom
juraam:fix/incompatible-hardware-error

Conversation

@juraam

@juraam juraam commented Jul 27, 2026

Copy link
Copy Markdown

Partially addresses #81 — reports the incompatibility at session init rather than ahead of time.

On Apple Silicon devices.py forces WORLD_ENGINE_DEVICE="cpu", so the world_engine backend
loads the model and the seed successfully and only dies at the second warmup step
(append_frame), where _cache_pass is compiled:

NotImplementedError: torch.compile on current platform is not supported for CPU. target: flex_attention

The user sits through a full model load and warmup to get a compiler internals dump, with no
hint that the backend setting is the thing to change.

Before

Screenshot 2026-07-27 at 6 35 35 PM

After

Screenshot 2026-07-27 at 6 27 55 PM

I checked whether the CPU path is worth unblocking rather than rejecting: with
TORCHDYNAMO_DISABLE=1 warmup does complete on an M1 Pro — append_frame 1658 s, gen_frame
3140 s, ~80 min total, ~0.0013 pixel FPS. Functionally correct, nowhere near playable.

Fix: raise a typed IncompatibleHardwareError before the model load and surface it as
MessageId.INCOMPATIBLE_HARDWARE over both the error push and the deferred init rpc_err.

The pre-init socket is deliberately not torn down — it acks the init and keeps waiting, like
the not ready branch beside it. Closing in the same tick made the client's lifecycle reducer
see a plain connection failure before the RPC rejection landed, so the precise message lost the
race and only appeared on a second attempt.

Tested on an M1 Pro dev build. Lints, basedpyright and codegen_ts.py --check pass locally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant