jax-ml/jax · error · AttributeError
{self!r} has no `manual_axis_type`.
Error message
{self!r} has no `manual_axis_type`. What it means
RefRValue.manual_axis_type raises AttributeError when the inner aval has no manual axis type (the property isn't defined for that aval kind). .mat aliases it and propagates the same error.
Source
Thrown at jax/_src/state/types.py:557
raise AttributeError(
f"{self!r} has no `dtype`."
) from None
@property
def sharding(self):
try:
return self.inner_aval.sharding # pyrefly: ignore[missing-attribute]
except AttributeError:
raise AttributeError(
f"{self!r} has no `sharding`."
) from None
@property
def manual_axis_type(self):
try:
return self.inner_aval.manual_axis_type # pyrefly: ignore[missing-attribute]
except AttributeError:
raise AttributeError(
f"{self!r} has no `manual_axis_type`."
) from None
@property
def mat(self):
return self.manual_axis_type
@core.aval_property
def at(self):
return RefIndexer(self)
@core.aval_method
def bitcast(self, dtype):
return TransformedRef(self, ()).bitcast(dtype)
@core.aval_method
def reshape(self, *shape):
return TransformedRef(self, ()).reshape(*shape)View on GitHub (pinned to 1e1c6a8fc0)
Solutions
- Guard with getattr(ref, 'manual_axis_type', None)
- Check the aval type supports manual axes before access
- Provide a default axis type in calling code
Defensive patterns
Strategy: type-guard
Type guard
def ref_has_manual_axes(ref):
return hasattr(getattr(ref, "inner_aval", None), "manual_axis_type") Prevention
- Guard .mat access
- Default axis types at call sites
When it happens
Trigger: Accessing .manual_axis_type or .mat on a ref whose inner aval doesn't support manual axes (non-array or plain ShapedArray without manual axis info).
Common situations: Code written against avals with manual axis types being reused with ordinary avals.
Related errors
- {self!r} has no `sharding`.
- {self!r} has no `shape`.
- {self!r} has no `dtype`.
- {self!r} has no `sharding`.
- numpy masked arrays are not supported as direct inputs to JA
AI-assisted analysis of jax-ml/jax@1e1c6a8fc0 (2026-08-27).
Data as JSON: /api/errors/3fca3e085c765b15.
Report an issue: GitHub.