lutzroeder/netron · error · Error

Value type '${val.constructor.name}' not implemented.

Error message

Value type '${val.constructor.name}' not implemented.

What it means

While materializing ExecutionPlan program values, executorch encountered a value class in plan.values that isn't one of the handled flatbuffer types (Tensor, OptionalTensor, TensorList, OptionalTensorList). The loader only implements a fixed set, so any new/other value type is rejected.

Source

Thrown at source/executorch.js:111

                    const items = [val];
                    values.set(index, { type: null, value: values.tensors(index, items) });
                } else if (val instanceof executorch_flatbuffer.String) {
                    values.set(index, { type: 'string', value: val.string_val });
                } else if (val instanceof executorch_flatbuffer.IntList) {
                    const list = val.items.map((index) => plan.values[index].val.int_val);
                    values.set(index, { type: 'int64[]', value: list });
                } else if (val instanceof executorch_flatbuffer.DoubleList) {
                    values.set(index, { type: 'float64[]', value: Array.from(val.items) });
                } else if (val instanceof executorch_flatbuffer.BoolList) {
                    throw new executorch.Error('executorch_flatbuffer.BoolList not implemented.');
                } else if (val instanceof executorch_flatbuffer.TensorList) {
                    const items = Array.from(val.items).map((arg) => arg === -1 ? null : plan.values[arg].val);
                    values.set(index, { type: null, value: values.tensors(index, items) });
                } else if (val instanceof executorch_flatbuffer.OptionalTensorList) {
                    const items = Array.from(val.items).map((arg) => arg === -1 ? null : plan.values[arg].val);
                    values.set(index, { type: null, value: values.tensors(index, items) });
                } else {
                    throw new Error(`Value type '${val.constructor.name}' not implemented.`);
                }
            }
            return values.get(index);
        };
        for (let i = 0; i < plan.inputs.length; i++) {
            const input = plan.inputs[i];
            const value = values.map(input);
            const name = plan.inputs.length === 1 ? 'input' : `input.${i}`;
            const argument = new executorch.Argument(name, value.value, value.type);
            this.inputs.push(argument);
        }
        for (let i = 0; i < plan.outputs.length; i++) {
            const output = plan.outputs[i];
            const value = values.map(output);
            const name = plan.outputs.length === 1 ? 'output' : `output.${i}`;
            const argument = new executorch.Argument(name, value.value, value.type);
            this.outputs.push(argument);
        }

View on GitHub (pinned to d8a543f5f8)

Solutions

  1. Update netron to the latest release (executorch support tracks PyTorch closely)
  2. Re-export the program with an older/stable executorch version
  3. Check the erroring class name in the message to identify the unsupported value type and report it upstream
Defensive patterns

Strategy: type-guard

Type guard

const supported = (v) => v instanceof executorch_flatbuffer.Tensor || v instanceof executorch_flatbuffer.OptionalTensor || v instanceof executorch_flatbuffer.TensorList || v instanceof executorch_flatbuffer.OptionalTensorList;

Try / catch

try { openModel(f); } catch (e) { if (/Value type '.*' not implemented/.test(e.message)) { /* unsupported executorch value type — update netron */ } }

Prevention

When it happens

Trigger: Opening an .ptq/.pte ExecutionTorch program whose values table contains a flatbuffer type outside the implemented if-chain (e.g. a new future type added in a newer executorch schema).

Common situations: Program exported by a newer PyTorch/executorch release than the netron version supports.


AI-assisted analysis of lutzroeder/netron@d8a543f5f8 (2026-08-27). Data as JSON: /api/errors/993ef799e3975755. Report an issue: GitHub.