tracel-ai/burn · error

not implemented

Error message

not implemented

What it means

Unimplemented guard in the router interpreter's `register_op`: a base operation (in this path, Scatter on a bool tensor) has no registered execution path for that dtype in the interpreter, so dispatching the op panics.

Source

Thrown at crates/burn-router/src/interpreter.rs:645

                    handles.register_bool_tensor::<B>(&desc.out.id, output);
                }
                BaseOperationIr::Gather(desc) => {
                    let tensor = handles.get_bool_tensor::<B>(&desc.tensor);
                    let indices = handles.get_int_tensor::<B>(&desc.indices);

                    let output = B::bool_gather(desc.dim, tensor, indices);
                    handles.register_bool_tensor::<B>(&desc.out.id, output);
                }
                BaseOperationIr::Scatter(desc) => {
                    let tensor = handles.get_bool_tensor::<B>(&desc.tensor);
                    let indices = handles.get_int_tensor::<B>(&desc.indices);
                    let value = handles.get_bool_tensor::<B>(&desc.value);

                    let output = match desc.update {
                        IndexingUpdateOp::Add => {
                            B::bool_scatter_or(desc.dim, tensor, indices, value)
                        }
                        _ => unimplemented!(),
                    };
                    handles.register_bool_tensor::<B>(&desc.out.id, output);
                }
                BaseOperationIr::ScatterNd(_) => {
                    unreachable!("scatter_nd not supported for bool tensors")
                }
                BaseOperationIr::GatherNd(_) => {
                    unreachable!("gather_nd not supported for bool tensors")
                }
                BaseOperationIr::Select(desc) => {
                    let tensor = handles.get_bool_tensor::<B>(&desc.tensor);
                    let indices = handles.get_int_tensor::<B>(&desc.indices);

                    let output = B::bool_select(tensor, desc.dim, indices);
                    handles.register_bool_tensor::<B>(&desc.out.id, output);
                }
                BaseOperationIr::SelectAssign(desc) => {
                    let tensor = handles.get_bool_tensor::<B>(&desc.tensor);

View on GitHub (pinned to d16f7ba2ed)

Solutions

  1. Avoid bool scatter on the router backend; use int masks instead
  2. Perform the scatter before casting to bool
  3. Implement the missing op/dtype arm in burn-router's interpreter
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at crates/burn-router/src/interpreter.rs:645 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tracel-ai/burn@d16f7ba2ed (2026-09-05). Data as JSON: /api/errors/0f153c7c38fd6a7a. Report an issue: GitHub.