Skip to content

BUG - Adaptation Project generator cannot validate UI5 versions behind a corporate proxy #5163

Description

@mmilko01

Description

When VS Code runs behind a corporate HTTP proxy, the SAPUI5 Adaptation Project generator cannot validate any UI5 version. Every version (system version and latest) is rejected with:

The SAPUI5 version you have selected is not compatible with the SAPUI5 Adaptation Editor. Please select a different version.

Root cause: the generator's UI5-CDN calls bypass the proxy-aware HTTP layer used elsewhere in the tooling. validateUI5VersionExists used a raw axios.get, and the version-list calls used the native Node fetch:

  • Raw axios relies on axios's built-in proxy handling, which builds a CONNECT request (Host without port) that strict corporate proxies reject. The resulting error is mapped to the "not compatible" message.
  • Node's native fetch ignores HTTP(S)_PROXY entirely, so in a proxy-only network those calls cannot reach the CDN.

Steps to Reproduce

  1. Run VS Code on a machine whose only internet access is a strict corporate HTTP proxy (HTTPS_PROXY/HTTP_PROXY set).
  2. Start the SAPUI5 Adaptation Project generator; select a system and application.
  3. Reach the UI5 version step.
  4. Every version is rejected with "not compatible with the SAPUI5 Adaptation Editor".

Expected results

The version validates through the proxy and the wizard proceeds (as it does without a proxy, and as the tooling's other requests already do).

Actual results

All versions rejected with the "not compatible" error; the wizard cannot continue.

Version/Components/Environment

  • Components: @sap-ux/adp-tooling (@sap-ux/generator-adp), @sap-ux/axios-extension
  • Reported on Node 24.x, VS Code (desktop), plain unauthenticated corporate HTTP proxy, with GLOBAL_AGENT_* / HTTP(S)_PROXY / NO_PROXY env vars set.
    OS:
  • Windows
  • Mac OS
  • Other (any desktop behind a strict HTTP proxy)

Root Cause Analysis

Problem

ADP UI5-version requests to the SAP CDN bypassed the proxy-aware HTTP layer: validator.ts used raw axios.get (axios's built-in proxy CONNECT is rejected by strict proxies) and fetch.ts used native fetch (which ignores proxy env vars). The proxy rejection surfaced to the user as "version not compatible".

Fix

Route the ADP UI5-version calls through the existing proxy handling. Extracted the proxy logic from axios-extension's factory.ts into a reusable getProxyAgentConfig(url) and used it in validator.ts and fetch.ts (the latter switched from native fetch to axios). Honours NO_PROXY and is skipped in SAP Business Application Studio.

Why was it missed

The proxy handling lived only inside the axios-extension service-provider factory; these UI5-CDN calls were written as standalone axios/fetch calls and were only exercised in environments with direct internet or a lenient proxy. The proxy rejection is indistinguishable, to the validator, from the CDN legitimately reporting an unknown version.

How can we avoid this

Prefer the shared proxy-aware HTTP helper for all outbound requests; avoid native fetch for requests that must honour proxy configuration; add proxy-path test coverage.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions