{"record":{"id":"b1cc634851f07033","repo":"keras-team/keras","slug":"repeated-axis-in-axis-canonical-axis","errorCode":null,"errorMessage":"Repeated axis in `axis`: {canonical_axis}","messagePattern":"Repeated axis in `axis`: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"keras/src/backend/jax/sparse.py","lineNumber":53,"sourceCode":"    result_dims = len(input_shape)\n    if insert_dims:\n        result_dims += len(axis)\n\n    # Resolve negative values.\n    canonical_axis = []\n    for a in axis:\n        if not -result_dims <= a < result_dims:\n            raise ValueError(\n                f\"In `axis`, axis {a} is out of bounds for array \"\n                f\"of dimension {result_dims}\"\n            )\n        if a < 0:\n            a = a + result_dims\n        canonical_axis.append(a)\n\n    # Check uniqueness again after resolving negative values.\n    if len(set(canonical_axis)) != len(canonical_axis):\n        raise ValueError(f\"Repeated axis in `axis`: {canonical_axis}\")\n    canonical_axis = sorted(canonical_axis)\n\n    # Compute output shape.\n    output_shape = list(input_shape)\n    for i in canonical_axis:\n        if insert_dims:\n            output_shape.insert(i, 1)\n        else:\n            output_shape[i] = 1\n    broadcast_dims = [i for i in range(result_dims) if i not in canonical_axis]\n    return canonical_axis, output_shape, broadcast_dims\n\n\ndef bcoo_add_indices(x1, x2, sum_duplicates):\n    \"\"\"Add the indices of `x2` to `x1` with zero values.\n\n    Args:\n        x1: `BCOO` tensor to add indices to.","sourceCodeStart":35,"sourceCodeEnd":71,"githubUrl":"https://github.com/keras-team/keras/blob/7a34a03db60bf60042242d6a556fc3be119046a5/keras/src/backend/jax/sparse.py#L35-L71","documentation":"Error \"Repeated axis in `axis`: {canonical_axis}\" thrown in keras-team/keras.","triggerScenarios":"Thrown at keras/src/backend/jax/sparse.py:53 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7a34a03db60bf60042242d6a556fc3be119046a5","analyzedAt":"2026-08-25T21:25:25.994Z","schemaVersion":2},"datasetVersion":"2026-08-26T02:17:13.382Z"}