{"record":{"id":"685c7305d6b32b03","repo":"xai-org/x-algorithm","slug":"unknown-domain-domain-for-name-r","errorCode":null,"errorMessage":"Unknown domain: {domain} for {name!r}","messagePattern":"Unknown domain: (.+?) for (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"phoenix/python/training/xai-checkpointing/xai_checkpointing/load.py","lineNumber":193,"sourceCode":"                cur, cur_bytes = [], 0\n            cur.append(item)\n            cur_bytes += nbytes\n        if cur:\n            batches.append(cur)\n    elif plan:\n        batches.append(plan)\n    return batches\n\n\ndef _convert_domains(domains: dict[str, Any], host_state: dict[str, jax.Array]) -> dict[str, Any]:\n    for name, domain in domains.items():\n        assert host_state.get(name) is not None, f\"Cannot restrict domain of skipped tensor {name}\"\n        if isinstance(domain, dict):\n            domains[name] = ts.IndexDomain(json=domain)\n        elif isinstance(domain, ts.DimExpression):\n            domains[name] = ts.IndexDomain(shape=host_state[name].shape)[domain]\n        elif not isinstance(domain, ts.IndexDomain):\n            raise ValueError(f\"Unknown domain: {domain} for {name!r}\")\n    return domains\n\n\ndef _open_tensor(\n    checkpoint_name: str,\n    name: str,\n    path: pathlib.Path,\n    use_zarr3: bool,\n    ts_context: ts.Context,\n    dest: jax.Array,\n    has_domain: bool,\n    tspec_transform: Callable[[dict[str, Any]], dict[str, Any]] | None,\n) -> ts.TensorStore:\n    info = ocp.type_handlers.ParamInfo(\n        name=checkpoint_name,\n        path=path / checkpoint_name,\n        parent_dir=path,\n        is_ocdbt_checkpoint=True,","sourceCodeStart":175,"sourceCodeEnd":211,"githubUrl":"https://github.com/xai-org/x-algorithm/blob/24c60942c5c5fdad3a6addffb4c6e6d2f228f04f/phoenix/python/training/xai-checkpointing/xai_checkpointing/load.py#L175-L211","documentation":"_convert_domains accepts, per tensor name, a dict (JSON IndexDomain), a ts.DimExpression, or a ts.IndexDomain. Anything else raises this ValueError naming the tensor and the unsupported domain object.","triggerScenarios":"Passing load_checkpoint(..., domains={\"params\": (slice(0,4),)}) or a list/str/tuple as the domain for a tensor; only the three supported types are recognized.","commonSituations":"Intuitively passing Python slices/tuples expecting them to work, or passing a TensorStore type from a different tensorstore version with a changed class layout so isinstance checks fail.","solutions":["Wrap the restriction in ts.DimExpression (e.g. ts.d[:4]) or pass ts.IndexDomain(shape=...)","If using a dict, ensure it's valid IndexDomain JSON","Use 'no_loading' for tensors you want skipped entirely","Check tensorstore version compatibility if passing its types"],"exampleFix":"# before\nload_checkpoint(..., domains={\"embedding\": (slice(0, 1024),)})\n# after\nimport tensorstore as ts\nload_checkpoint(..., domains={\"embedding\": ts.IndexDomain(shape=[V, H])[ts.d[0][:1024]]})","handlingStrategy":"type-guard","validationCode":"import tensorstore as ts\n\ndef valid_domain(d):\n    return isinstance(d, (dict, ts.IndexDomain)) or isinstance(d, ts.DimExpression)","typeGuard":"def is_supported_domain(domain) -> bool:\n    import tensorstore as ts\n    return isinstance(domain, (dict, ts.DimExpression, ts.IndexDomain))","tryCatchPattern":null,"preventionTips":["Construct domains via tensorstore APIs, not raw slices","Pin the tensorstore version to match xai-checkpointing"],"tags":["checkpoint","tensorstore","domain","validation"],"backgroundTag":"invalid-argument-type","analyzedSha":"24c60942c5c5fdad3a6addffb4c6e6d2f228f04f","analyzedAt":"2026-08-28T11:40:14.686Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}