HTTP Response 500 (Internal Server Error) when archiving file larger than 64 kBytes from SAP after 30 seconds timeout

HTTP Response 500 (Internal Server Error) when archiving file larger than 64 kBytes from SAP after 30 seconds timeout

Symptom

 

When a file larger than 64 kByte is archived by SAP, the tia Core Content Server (CS) responses with a HTTP 500 response (Internal Server Error) during the reception of the request after a 30 seconds timeout. At this time, no processing at CS side took place, yet.

 

The CS log shows (log level: DEBUG):

  • the request URL, and

  • then asynchronic reception of the payload (in the example below the file included in POST body)

  • After reception of 64 kBytes of payload, the receiving component (Jetty webserver) times out after 30 seconds.

  • The CS sends an HTTP 500 error response to SAP

2026-05-11 10:44:19.281 [-a1/-a1] [D] [-83] o.s.s.w.FilterChainProxy.doFilterInternal ( 223) : Securing POST /contentserver?create&.. 2026-05-11 10:44:19.281 [-a1/-b3] [D] [-83] o.s.s.w.FilterChainProxy.lambda$doFilterInternal$3 ( 227) : Secured POST /contentserver?create&.. 2026-05-11 10:44:19.307 [-a1/-b3] [D] [-83] o.e.j.e.s.AsyncContentProducer.readChunk ( 330) : readChunk() updated _bytesArrived to 16 and _firstByteTimeStamp to 8791599511032743 AsyncContentProducer@4bcb5b2c[c=null] 2026-05-11 10:44:19.318 [-a1/-b3] [D] [-83] o.e.j.e.s.AsyncContentProducer.readChunk ( 330) : readChunk() updated _bytesArrived to 81 and _firstByteTimeStamp to 8791599511032743 AsyncContentProducer@4bcb5b2c[c=null] 2026-05-11 10:44:19.360 [-a1/-b3] [D] [-83] o.e.j.e.s.AsyncContentProducer.readChunk ( 330) : readChunk() updated _bytesArrived to 112 and _firstByteTimeStamp to 8791599511032743 AsyncContentProducer@4bcb5b2c[c=null] 2026-05-11 10:44:19.382 [-a1/-b3] [D] [-83] o.e.j.e.s.AsyncContentProducer.readChunk ( 330) : readChunk() updated _bytesArrived to 137 and _firstByteTimeStamp to 8791599511032743 AsyncContentProducer@4bcb5b2c[c=null] 2026-05-11 10:44:19.406 [-a1/-b3] [D] [-83] o.e.j.e.s.AsyncContentProducer.readChunk ( 330) : readChunk() updated _bytesArrived to 16521 and _firstByteTimeStamp to 8791599511032743 AsyncContentProducer@4bcb5b2c[c=null] 2026-05-11 10:44:19.414 [-a1/-b3] [D] [-83] o.e.j.e.s.AsyncContentProducer.readChunk ( 330) : readChunk() updated _bytesArrived to 32904 and _firstByteTimeStamp to 8791599511032743 AsyncContentProducer@4bcb5b2c[c=null] 2026-05-11 10:44:19.423 [-a1/-b3] [D] [-83] o.e.j.e.s.AsyncContentProducer.readChunk ( 330) : readChunk() updated _bytesArrived to 49288 and _firstByteTimeStamp to 8791599511032743 AsyncContentProducer@4bcb5b2c[c=null] 2026-05-11 10:44:19.431 [-a1/-b3] [D] [-83] o.e.j.e.s.AsyncContentProducer.readChunk ( 330) : readChunk() updated _bytesArrived to 65671 and _firstByteTimeStamp to 8791599511032743 AsyncContentProducer@4bcb5b2c[c=null] 2026-05-11 10:44:49.446 [ / ] [D] [scheduler-96-1] o.e.j.i.IdleTimeout.checkIdleTimeout ( 161) : SocketChannelEndPoint@19fbd6ad[..]->[..]=>HttpChannelState@3f19196{..}] idle timeout check, elapsed: 30000 ms, remaining: 0 ms 2026-05-11 10:44:49.447 [ / ] [D] [scheduler-96-1] o.e.j.i.IdleTimeout.checkIdleTimeout ( 169) : SocketChannelEndPoint@19fbd6ad[..]->[..]=>HttpChannelState@3f19196{..}] idle timeout expired java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167) at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:309) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) at java.base/java.lang.Thread.run(Thread.java:1474) 2026-05-11 10:44:49.447 [ / ] [D] [scheduler-96-1] o.e.j.s.i.HttpChannelState.onIdleTimeout ( 367) : onIdleTimeout HttpChannelState@3f19196{..} java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:167)& at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:309) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) at java.base/java.lang.Thread.run(Thread.java:1474) .. 2026-05-11 10:44:49.482 [ / ] [D] [-83] o.e.j.s.i.HttpChannelState.succeeded (1356) : write succeeded ChannelResponse@63b8e6f5{500,POST@73231baa https://.. HTTP/1.0}

Cause

The saphttp component of SAP does not properly support TLS 1.3

Solution

SAP provided a fix.

See SAP Note 3718087 - SAPHTTP inkompatibel mit TLSv1.3