{"record":{"id":"47142672a11b5b52","repo":"keras-team/keras","slug":"mode-argument-value-not-supported-expected-one-471426","errorCode":null,"errorMessage":"`mode` argument value not supported. Expected one of {'reduced', 'complete'}. Received: mode={mode}","messagePattern":"`mode` argument value not supported\\. Expected one of (.+?)\\. Received: mode=(.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"keras/src/backend/numpy/ops/linalg.py","lineNumber":65,"sourceCode":"        sl.lu_factor,\n        signature=signature,\n    )\n    return _lu_factor_gufunc(a)\n\n\ndef norm(x, ord=None, axis=None, keepdims=False):\n    x = convert_to_tensor(x)\n    dtype = standardize_dtype(x.dtype)\n    if \"int\" in dtype or dtype == \"bool\":\n        dtype = dtypes.result_type(x.dtype, \"float32\")\n    return np.linalg.norm(x, ord=ord, axis=axis, keepdims=keepdims).astype(\n        dtype\n    )\n\n\ndef qr(x, mode=\"reduced\"):\n    if mode not in {\"reduced\", \"complete\"}:\n        raise ValueError(\n            \"`mode` argument value not supported. \"\n            \"Expected one of {'reduced', 'complete'}. \"\n            f\"Received: mode={mode}\"\n        )\n    return np.linalg.qr(x, mode=mode)\n\n\ndef solve(a, b):\n    return np.linalg.solve(a, b)\n\n\ndef solve_triangular(a, b, lower=False):\n    if a.ndim == 2:\n        return sl.solve_triangular(a, b, lower=lower)\n\n    _vectorized_solve_triangular = np.vectorize(\n        lambda a, b: sl.solve_triangular(a, b, lower=lower),\n        signature=\"(n,n),(n,m)->(n,m)\",","sourceCodeStart":47,"sourceCodeEnd":83,"githubUrl":"https://github.com/keras-team/keras/blob/7a34a03db60bf60042242d6a556fc3be119046a5/keras/src/backend/numpy/ops/linalg.py#L47-L83","documentation":"Argument validation in the NumPy backend's `qr`: the `mode` argument selects between the reduced QR decomposition (R is m x n) and the complete one (R is m x m, Q is m x m), so only 'reduced' and 'complete' are accepted. Any other value — e.g. numpy's legacy 'r' or 'raw' modes or a misspelling — fails the set-membership guard and is rejected naming the received mode.","triggerScenarios":"Thrown at keras/src/backend/numpy/ops/linalg.py:65 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use mode='reduced' (default) or mode='complete'","Wrap scipy/numpy directly if you need non-standard QR modes not exposed by this op","Check for misspelled or legacy mode strings in code migrated from raw numpy.linalg.qr"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7a34a03db60bf60042242d6a556fc3be119046a5","analyzedAt":"2026-08-25T21:25:25.994Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}