{"record":{"id":"61e9ecfa1676172d","repo":"jax-ml/jax","slug":"static-slice-unrecognized-index-pidx-index","errorCode":null,"errorMessage":"static_slice: unrecognized index {pidx.index}","messagePattern":"static_slice: unrecognized index (.+?)","errorType":"validation","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"jax/_src/numpy/indexing.py","lineNumber":458,"sourceCode":"        strides.append(1)\n        squeeze_axes.append(axis)\n      elif pidx.typ == IndexType.SLICE:\n        assert isinstance(pidx.index, slice)\n        axis, = pidx.consumed_axes\n        size = self.shape[axis]\n        start, stop, stride = pidx.index.indices(size)\n        if stride < 0:\n          new_start = min(size, stop + 1 + abs(start - stop - 1) % abs(stride))\n          start_indices.append(new_start)\n          limit_indices.append(max(new_start, start + 1))\n          strides.append(abs(stride))\n          rev_axes.append(axis)\n        else:\n          start_indices.append(start)\n          limit_indices.append(max(start, stop))\n          strides.append(stride)\n      else:\n        raise TypeError(f\"static_slice: unrecognized index {pidx.index}\")\n    return _StaticSliceIndexer(\n      start_indices=start_indices,\n      limit_indices=limit_indices,\n      strides=None if all(s == 1 for s in strides) else strides,\n      rev_axes=rev_axes,\n      squeeze_axes=squeeze_axes,\n      newaxis_dims=newaxis_dims,\n    )\n\n  def to_dynamic_slice(\n      self, *,\n      arr_is_sharded: bool = False,\n      normalize_indices: bool = True,\n      mode: str | slicing.GatherScatterMode | None) -> _DynamicSliceIndexer:\n    \"\"\"Convert to DynamicSliceIndexer data structure.\n\n    If this is not possible, raise a ValueError, TypeError, or IndexError.\n    \"\"\"","sourceCodeStart":440,"sourceCodeEnd":476,"githubUrl":"https://github.com/jax-ml/jax/blob/1e1c6a8fc06dfcd1247076ec5cae4640cea5d7bb/jax/_src/numpy/indexing.py#L440-L476","documentation":"Second defensive fallback in to_static_slice: after re-iterating parsed indices to build start/limit/stride lists, an index whose type fell through all branches raises TypeError. Unreachable through normal classification; indicates internal inconsistency.","triggerScenarios":"Same as 1425/1435: hand-built index structures or mixed JAX versions.","commonSituations":"Internal API misuse, version skew, patched internals.","solutions":["Ensure consistent jax/jaxlib versions","Use public indexing APIs","File an upstream issue with a minimal repro"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin matching jax/jaxlib versions","Use public indexing APIs only"],"tags":["jax","internal","invariant"],"backgroundTag":"library-internal-invariant-violation","analyzedSha":"1e1c6a8fc06dfcd1247076ec5cae4640cea5d7bb","analyzedAt":"2026-08-27T09:53:25.647Z","schemaVersion":2},"datasetVersion":"2026-08-27T13:17:12.746Z"}