Every failure arrives as a USearchException carrying a Status, one enumerator per usearch_status_*_k, such as ShapeMismatch, Io, Unsupported, or InvalidArgument.
Width and geometry checks belong to the library, which sees every row view’s columns; the binding checks only what the C interface cannot see, like a key count against the rows it accompanies, a softmax carry against the queries, or a negative wanted.
The closed sets spell themselves through the library’s own name tables, so a message reads usearch: shape-mismatch: ... and parsing user text never restates a table:
string spelled = Status.ShapeMismatch.Name(); // "shape-mismatch"
bool known = Names.TryParse("bf16", out Scalar scalar);