{"record":{"id":"636dcdaee2ee6aac","repo":"apache/beam","slug":"unable-to-fetch-remote-job-server-jar-at-url-e-if-no","errorCode":null,"errorMessage":"Unable to fetch remote job server jar at {url}: {e}. If no Internet access at runtime, stage the jar at {cached_jar}","messagePattern":"Unable to fetch remote job server jar at (.+?): (.+?)\\. If no Internet access at runtime, stage the jar at (.+?)","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"sdks/python/apache_beam/utils/subprocess_server.py","lineNumber":585,"sourceCode":"          if url.startswith(cls.MAVEN_CENTRAL_REPOSITORY):\n            fallback_url = url.replace(\n                cls.MAVEN_CENTRAL_REPOSITORY, cls.GOOGLE_MAVEN_MIRROR)\n            _LOGGER.info(\n                'Trying Google Maven mirror fallback: %s' % fallback_url)\n            try:\n              cls._download_jar_to_cache(fallback_url, cached_jar, user_agent)\n              _LOGGER.info(\n                  'Successfully downloaded from Google Maven mirror: %s' %\n                  fallback_url)\n            except URLError as fallback_e:\n              raise RuntimeError(\n                  f'Unable to fetch remote job server jar at {url}: {e}. '\n                  f'Also failed to fetch from Google Maven mirror at '\n                  f'{fallback_url}: {fallback_e}. '\n                  f'If no Internet access at runtime, stage the jar at '\n                  f'{cached_jar}')\n          else:\n            raise RuntimeError(\n                f'Unable to fetch remote job server jar at {url}: {e}. If no '\n                f'Internet access at runtime, stage the jar at {cached_jar}')\n      return cached_jar\n\n  @classmethod\n  @contextlib.contextmanager\n  def beam_services(cls, replacements):\n    try:\n      old = cls._BEAM_SERVICES.replacements\n      cls._BEAM_SERVICES.replacements = dict(old, **replacements)\n      yield\n    finally:\n      cls._BEAM_SERVICES.replacements = old\n\n  @classmethod\n  def make_classpath_jar(cls, main_jar, extra_jars, cache_dir=None):\n    if cache_dir is None:\n      cache_dir = cls.JAR_CACHE","sourceCodeStart":567,"sourceCodeEnd":603,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/python/apache_beam/utils/subprocess_server.py#L567-L603","documentation":"Same download path as the dual-failure variant, but here no fallback URL is available (no mirror configured), so the initial URLError alone triggers this error with guidance to stage the jar locally at the cache path. Indicates the remote job-server jar could not be fetched.","triggerScenarios":"cls._download_jar_to_cache(url, cached_jar, user_agent) raises URLError and no fallback mirror exists — offline machine, DNS failure, HTTP 404 for the jar, or proxy blocking the request.","commonSituations":"Air-gapped deployments; corporate proxies stripping HTTPS; using a very new/old Beam version whose jar isn't on Maven; temporary Maven Central outages.","solutions":["Download the jar manually and place it exactly at the cached_jar path from the message; the method returns it without fetching.","Fix network access / proxy env (https_proxy, https_proxy credentials) and retry.","Verify the jar URL resolves (curl -I the URL in the message) and use a Beam version that exists on Maven Central.","Point the runner at a locally supplied jar instead of relying on local_jar()."],"exampleFix":"# before\n# pipeline in offline environment attempts download -> URLError\n# after\nexport https_proxy=http://proxy.corp:8080\n# or stage the jar:\nmkdir -p ~/.apache_beam/cache && cp beam-runners-*.jar ~/.apache_beam/cache/<expected-name>.jar","handlingStrategy":"fallback","validationCode":"import urllib.request\ntry:\n    urllib.request.urlopen(jar_url, timeout=10)\nexcept Exception as e:\n    print(f'Cannot reach {jar_url}: {e}; stage jar at cache path manually')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Stage the jar at the documented cache path for air-gapped runs","Set proxy env vars where outbound HTTP is proxied","Prefer released Beam versions with valid Maven URLs","Monitor Maven Central availability in CI"],"tags":["python","network","download","offline","apache-beam"],"backgroundTag":"http-request-failed","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}