tracel-ai/burn · error
not implemented
Error message
not implemented
What it means
Unimplemented guard in `change_client_backend`: cross-backend tensor transfer for a dtype outside the handled float/int branches (e.g., bool or quantized tensors) reaches the fallback `unimplemented!()`, so moving a tensor between router client backends panics for that dtype.
Source
Thrown at crates/burn-router/src/channel/base.rs:58
/// Change the tensor to a different client backend.
fn change_client_backend(
tensor: RouterTensor<Self::Client>,
device: &Self::Device, // target device
) -> RouterTensor<Self::Client> {
// Get tensor handle from current client
let original_client = tensor.client.clone();
let desc = tensor.into_ir();
let mut handle = Self::get_tensor_handle(&desc, &original_client);
if desc.dtype.is_float() {
handle = Self::Bridge::change_backend_float(handle, desc.shape.clone(), device);
} else if desc.dtype.is_int() {
handle = Self::Bridge::change_backend_int(handle, desc.shape.clone(), device);
} else if desc.dtype.is_bool() {
handle = Self::Bridge::change_backend_bool(handle, desc.shape.clone(), device);
} else {
unimplemented!()
}
// Register tensor handle on target client
let target_client = get_client::<Self>(device);
Self::register_tensor(&target_client, handle, desc.shape, desc.dtype)
}
}
View on GitHub (pinned to d16f7ba2ed)
Solutions
- Only change client backends for float or int tensors
- Move the tensor via CPU `TensorData` (to_data / from_data) instead
- Extend the bridge to handle bool/quantized dtypes if needed
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at crates/burn-router/src/channel/base.rs:58 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/d10812fadd63c0cf.
Report an issue: GitHub.