SAP Knowledge Base Article - Public

3764919 - Data acquisition from CAP OData service fails when result set exceeds configured page size

Symptom

  • Data acquisition from SAP HANA Cloud CAP OData services into SAP Analytics Cloud fails when the result set exceeds the configured page size limit and pagination is triggered.
  • The import may fail with a PLUGIN_ERROR and an HTTP 400 response from the OData service.
  • Error details HAR logs: 
    •  "PLUGIN_ERROR",
            "rawError": "Response from external server has status code of 400. ",
            "errorDefinition": "{\"code\":\"\",\"rawError\":\"Response from external server has status code of 400. \",\"params\":[\"status: 400 body: {\\\"error\\\":{\\\"message\\\":\\\"Parsing URL failed at position 62: Expected \\\\\\\"\\u0026\\\\\\\", [a-zA-Z0-9\\\\\\\\-\\\\\\\".\\\\\\\"_~!$\\u0027()*+,;\\u003d:@\\\\\\\"/\\\\\\\"\\\\\\\"?\\\\\\\"], or end of input but \\\\\\\"[\\\\\\\" found.\\\",\\\"code\\\":\\\"400\\\",\\\"@Common.numericSeverity\\\":4}}\"]}", 

Environment

SAP Analytics Cloud 2026.2.16

Reproducing the Issue

  1. Create a model.
  2. Choose OData Services.
  3. Choose the connection to the HANA Cloud OData service.
  4. Choose a query.
  5. Select Entire table.
  6. Set Batch Size to a value greater than 1000 (for example, 50000).
  7. Attempt to create the model and it fails.

Cause

  • The issue occurs when the result set exceeds the configured page size limit and pagination is triggered. In this scenario, the CAP OData service returns a nextLink containing an encoded $skiptoken value. The subsequent request sent by SAC contains a modified token value ($skiptoken=[object Object]1000), which results in the observed error.
  • Usually, SAP OData providers such as S/4HANA, SuccessFactors, and C4C typically return numeric $skiptoken values, while CAP OData may return encoded values as part of its reliable pagination mechanism.

Resolution

  • As a possible workaround, we recommend increasing the CAP OData maximum page size limit to a value that can accommodate the expected dataset size. This may allow the complete result set to be returned without generating a nextLink, thereby avoiding the use of $skiptoken and the behavior currently being observed.
  • The CAP documentation indicates that the default maximum page size is 1,000 records, but this value can be increased either at the project level or through the @cds.query.limit annotation: Generic Service Providers | capireProject-Specific Configurations | capire  
    • "cds": { "query": { "limit": { "default": 20, "max": 50000 } } } 
      • The maximum limit defines the maximum number of items that can get retrieved, regardless of $top.
      • The default limit defines the number of items that are retrieved if no $top was specified.
  • Additionally, according to the roadmap, a new native HANA Cloud Import Connection is planned for delivery in SAC QRC3. Since this solution uses a native connection instead of OData, it should eliminate the pagination behavior currently causing this issue: SAP Road Map Explorer.

See Also

Keywords

OData, hana cloud, sac import, pagination, batch size, plugin_error, status code 400, parsing url failed, odata pagination, import model failure, data acquisition, odata service, sac agent, cloud connector , KBA , LOD-ANA-AQU , Import Data Connections (Acquiring Data) , Problem

Product

SAP Analytics Cloud all versions