Search API returns an empty response inside a batch request in Verint V14

We're investigating a difference in behavior between Verint Community V13 and V14, maybe  

Our widget refreshes references to Verint content when the configuration panel opens. For each stored Content ID, it retrieves the current title and URL through the Search REST API. To avoid making multiple individual HTTP requests, these API calls are executed using jQuery.telligent.evolution.batch().

During our V14 upgrade, we did not change the widget code.  The same configuration, including the original Content IDs, was copied from V13 to V14.

In V13, the batch response contains the expected SearchResult.

In V14, the request within the batch returns an HTTP status of 200, but its BatchResponse contains only:

{ message: '' }

The expected SearchResult is missing.

The content itself still exists in V14. When the same Search API request is made directly, without jQuery.telligent.evolution.batch(), the API returns the correct content data.

Batch request

The following example demonstrates the issue:

var contentId = 'CONTENT_ID';

var baseUrl = jQuery.telligent.evolution.site.getBaseUrl();

var request = jQuery.telligent.evolution.batch(function() {

           jQuery.telligent.evolution.get({

              url: baseUrl + 'api.ashx/v2/search/{id}.json',

              data: {

                id: contentId

              }

      });

});

request.then(

    function(batch) {

       var response = batch.BatchResponses[0];

       console.log('Status:', response.StatusCode);

       console.log('BatchResponse:', response.BatchResponse);

       console.log( 'BatchResponse JSON:', JSON.stringify(response.BatchResponse) ); },

    function(error) {

       console.error('Batch request failed:', error); }

 );

Observed result in V13

{
  StatusCode: 200,
  BatchResponse: {
     SearchResult: {
        Id: 'CONTENT_ID',
        Title: 'Example content',
        Url: '/example-content/', ContentType: 'group' },
     Info: [],
     Warnings: [],
     Errors: []
  }
}

Observed result in V14

{
    StatusCode: 200,
    BatchResponse: {
     message: ''
    }
}

Direct request in V14

When the same endpoint is called outside the batch request, it returns the expected result:

var contentId = 'CONTENT_ID';
var baseUrl = jQuery.telligent.evolution.site.getBaseUrl();
jQuery.telligent.evolution.get({
  url: baseUrl + 'api.ashx/v2/search/{id}.json',
  data: {
    id: contentId
  }
}).then(
  function(result) {
     console.log('Direct response:', result);
  },
  function(error) {
    console.error('Direct request failed:', error);
  }
);

The direct response contains the expected SearchResult, including the correct Content ID, title, URL, and content type.

Questions

  1. Is this a known change or regression in the batch request implementation in Verint Community V14?

  2. Is the Search REST API supported inside jQuery.telligent.evolution.batch() in V14?

  3. If this behavior is expected, what is the recommended approach in V14 for retrieving multiple referenced content items in a single request?

Based on our testing, the issue does not appear to be related to the V13 to V14 migration itself. The content and the original Content IDs are present in V14. The difference in behavior occurs specifically when the Search API request is executed inside a batch in V14

Parents Reply
  • The root cause has been confirmed.

    In V14, the batch request works correctly with the new route:

    /api/v2/search/{id}.json

    Both existing content items were successfully retrieved:

    • Partners: 200, found: true

    • BizDev: 200, found: true

    Therefore, the issue is not caused by the Search API, jQuery.telligent.evolution.batch(), or the content migration.

    The exact technical cause is:

    The widget continues to use the legacy V13 route, /api.ashx/v2/.... In V14, direct requests to this route still work for backward compatibility, but requests made through batch() return an empty { message: '' } object. The new /api/v2/... route works correctly inside a batch request.

    The primary fix is now much simpler:

    // V13 baseUrl + 'api.ashx/v2/search/{id}.json' // V14 baseUrl + 'api/v2/search/{id}.json'

    I would still keep the defensive part of the proposed solution: the widget should not remove a menu item and its child items when the API returns an empty or invalid response. This will prevent configuration data loss if a similar API failure occurs in the future.

    The previously proposed internal endpoint based on core_v2_content.Get() is no longer required to fix this issue. The solution will most likely be limited to:

    • Switching to /api/v2/.

    • Adding safe handling for empty or invalid API responses.

    • Verifying whether the new route is compatible with V13 before selecting a single URL for both versions.

Children