Symptom
When customer tries to make a POST or upsert call to LMS OData API from either API client application or middleware, they are returned with Error:
OData error - ODataProcessingException: (411) Length Required [HTTP/1.1 411 Length Required].
Environment
SAP SuccessFactors Learning Management System (LMS)
Reproducing the Issue
Make any POST/upsert call to Learning OData API and get the "length required" error message.
Cause
POST calls should not require "content-length" header. This is not LMS API servers returning this error message. This error message is being returned by Akamai (Content Delivery Network Servers) servers which the calls are hitting first. Akamai servers are expecting "content-length" header as configured in the server settings.
Resolution
One way to test if this is Akamai servers returning this error message and not LMS API is to make same calls that were failing to LMS origin url which bypasses Akamai. If the same call does not trigger the error and is successful we can be sure that the issue is with Akamai and their server configuration. Eg, Token request would be " https://origin-XXXXX.plateau.com/learning/oauth-api/rest/v1/token" and POST call would be https://origin-XXXXXX.plateau.com/learning/odatav4/user/v1/Users
If the origin call is successful and we know that Akamai is the issue, please create a customer support case so that Akamai server configuration can be changed so that "allow without content-length" header can be enabled. This will resolve the issue.
Keywords
SAP; SuccessFactors; Learning; LMS; OData API; Length Required; Error; upsert; POST; Akamai; Server Configuration , KBA , LOD-SF-LMS-ODA , Web Services OData , LOD-SF-LMS , Learning Management System , Problem