{"record":{"id":"6cd907a694c1fed5","repo":"Unity-Technologies/ml-agents","slug":"the-entry-self-identifier-does-not-contain-a-val","errorCode":null,"errorMessage":"The entry {self.identifier} does not contain a valid url for this platform","messagePattern":"The entry (.+?) does not contain a valid url for this platform","errorType":"exception","errorClass":"FileNotFoundError","httpStatus":null,"severity":"error","filePath":"ml-agents-envs/mlagents_envs/registry/remote_registry_entry.py","lineNumber":59,"sourceCode":"        self._win_url = win_url\n        self._add_args = additional_args\n        self._tmp_dir_override = tmp_dir\n\n    def make(self, **kwargs: Any) -> BaseEnv:\n        \"\"\"\n        Returns the UnityEnvironment that corresponds to the Unity executable found at\n        the provided url. The arguments passed to this method will be passed to the\n        constructor of the UnityEnvironment (except for the file_name argument)\n        \"\"\"\n        url = None\n        if platform == \"linux\" or platform == \"linux2\":\n            url = self._linux_url\n        if platform == \"darwin\":\n            url = self._darwin_url\n        if platform == \"win32\":\n            url = self._win_url\n        if url is None:\n            raise FileNotFoundError(\n                f\"The entry {self.identifier} does not contain a valid url for this \"\n                \"platform\"\n            )\n        path = get_local_binary_path(\n            self.identifier, url, tmp_dir=self._tmp_dir_override\n        )\n        if \"file_name\" in kwargs:\n            kwargs.pop(\"file_name\")\n        args: List[str] = []\n        if \"additional_args\" in kwargs:\n            if kwargs[\"additional_args\"] is not None:\n                args += kwargs[\"additional_args\"]\n        if self._add_args is not None:\n            args += self._add_args\n        kwargs[\"additional_args\"] = args\n        return UnityEnvironment(file_name=path, **kwargs)\n","sourceCodeStart":41,"sourceCodeEnd":76,"githubUrl":"https://github.com/Unity-Technologies/ml-agents/blob/3ecb446f75d1e7400eb404c562dc005d3164cffc/ml-agents-envs/mlagents_envs/registry/remote_registry_entry.py#L41-L76","documentation":"FileNotFoundError raised by RemoteRegistryEntry.make() when the registry entry has no download URL for the current platform (linux/darwin/win32 URL field is None). The entry exists but simply doesn't ship a binary for your OS.","triggerScenarios":"entry.make() where platform resolves to a url field (_linux_url/_darwin_url/_win_url) that was never populated in the environment manifest.","commonSituations":"Environments published only for Windows being made from Linux/macOS; older or partial manifests missing some platform URLs; typos in manifest keys leaving a platform url null.","solutions":["Pick an entry that provides a binary for your platform (check the manifest's platform urls).","Build the environment yourself in Unity and load it with UnityEnvironment(file_name=...).","Edit/extend the manifest to add a valid url for your platform.","Contribute or download a community build for the missing platform."],"exampleFix":"// before\nentry = registry['3dball-headless']  # has only win_url\nenv = entry.make()  # on linux -> FileNotFoundError\n// after\nenv = UnityEnvironment(file_name='./3DBall_linux/UnityEnvironment.x86_64')","handlingStrategy":"fallback","validationCode":"import platform\nPLAT_KEY = {\"Linux\": \"linux\", \"Darwin\": \"darwin\", \"Windows\": \"win32\"}[platform.system()]\nurl = getattr(entry, f\"_{PLAT_KEY}_url\", None)\nif url is None:\n    raise RuntimeError(f\"{entry.identifier} has no {PLAT_KEY} binary\")\nenv = entry.make()","typeGuard":"def has_platform_binary(entry, plat: str) -> bool:\n    return getattr(entry, f\"_{plat}_url\", None) is not None","tryCatchPattern":"try:\n    env = entry.make()\nexcept FileNotFoundError:\n    env = UnityEnvironment(file_name=local_build_path)","preventionTips":["Check per-platform url fields in the manifest before make()","Maintain platform-specific local builds as fallbacks","Choose manifest entries that cover your CI OS matrix"],"tags":["registry","platform","file-not-found"],"backgroundTag":"binary-not-found","analyzedSha":"3ecb446f75d1e7400eb404c562dc005d3164cffc","analyzedAt":"2026-09-02T16:33:12.832Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-09T21:17:11.164Z"}