Pega Connect REST: resource path parameter not replacing {} token in URL

Hi all,

I’m calling an external REST API from a Connect REST rule where the dynamic values sit in the middle of the URL:

https://api.test.myorg.org/test/internal/object/api/{apiVersion}/customer/{customerId}/information

What I configured

  • URL Configuration: Use application setting
  • Base URL: APIConnect.CustomerService (the application setting holds the full URL above, including the {apiVersion} and {customerId} tokens)
  • Resource path: /.request.ApiVersion/.request.customerId
  • Resource path parameters:
Name Map from Map from key Empty behavior Encoding
apiVersion Clipboard .request.ApiVersion Throw error/required URL
customerId Clipboard .request.customerId Throw error/required URL

What I expected

Pega replaces {apiVersion} and {customerId} in the URL with the values read from the clipboard via “Map from key”.

What actually happens

The tokens in the middle of the URL are not replaced. The values end up appended at the end of the URL instead, and the call fails.

What I’ve checked

  • The parameter names and the Map from key property names are spelled correctly, and the properties have values at runtime.
  • The Tracer shows the resolved endpoint with the values appended at the end rather than substituted in place.

Questions

  1. Does Pega resolve {token} placeholders only when they are in the Resource path (Provide URL)field, or also when they are inside the Application Setting value used as Base URL?
  2. Is the correct approach to keep only the static part (https://api.test.myorg.org/test/internal/object/api) in the application setting and put /{apiVersion}/customer/{customerId}/information in the Resource path?
  3. Is there a supported way to keep the full URL, with tokens, in a single application setting?

Pega Version :24.1.4

We have a similar format for the request URL in 25.1.3 version and it works as expected. The values are getting replaced correctly at run time with the correct parameters. Please create a Pega Support ticket if you’re able to reproduce the issue in 24.1.4

If I understand correctly, you are using Application Settings for the URL configuration, and in our case, the Application Setting refers to GRS(Data Page). The URL stored in GRS contains dynamic parameters that are expected to be replaced at runtime based on the configuration in the Service tab of the Connect REST rule.

As part of the Pega incident, it was mentioned that after the connector upgrade, Pega treats the value from the Application Setting as the Base URL and does not substitute placeholders located within that value. As a result, the values v5 and 16575 are appended to the end of the path, while {apiVersion} and {customerId} remain unresolved. Java then rejects the resulting URI because the braces are not valid in the final resolved path.

The recommended workaround is to keep only the static, environment-specific portion of the endpoint in the Application Setting:

https://api.test.myorg.org/test/internal/object/api

And configure the dynamic portion in the Connect REST rule’s Resource path:

{apiVersion}/customer/{customerId}/information

However, our concern is that this changes the behaviour compared with the previous URL configuration, where the dynamic parameters within the configured URL were resolved successfully. We would therefore like to confirm whether this change is an expected product behaviour after the connector upgrade, or whether it is a limitation/regression that should be addressed by Product.