Skip to content

Docling Serve Client#

The docling-serve-client module is the reference HTTP client for talking to a Docling Serve backend.

It implements the framework‑agnostic DoclingServeApi interface from docling-serve-api using Java's built‑in HttpClient for transport and Jackson for JSON (auto‑detecting Jackson 2 or 3 at runtime).

If you only need the request/response model (without HTTP), use the API module: - docling-serve-api

When to use this module#

  • You want a ready‑to‑use HTTP client for Docling Serve with minimal setup.
  • You prefer a small dependency footprint (Java HttpClient + Jackson).
  • You need a simple builder to tweak base URL, HTTP timeouts, and request/response logging.

Installation#

Add the client dependency to your project.

dependencies {
  implementation("ai.docling:docling-serve-client:0.1.5")
}
<dependency>
  <groupId>ai.docling</groupId>
  <artifactId>docling-serve-client</artifactId>
  <version>0.1.5</version>
</dependency>

This artifact brings in the API types transitively, so you can use DoclingServeApi, ConvertDocumentRequest, etc., directly.

Jackson Implementation Required

Make sure you also include either a Jackson 2 or Jackson 3 dependency.

Quick start#

Create a client with DoclingServeClientBuilderFactory, build a request, and call convertSource():

import java.net.URI;
import ai.docling.api.serve.DoclingServeApi;
import ai.docling.api.serve.convert.request.ConvertDocumentRequest;
import ai.docling.api.serve.convert.request.options.ConvertDocumentOptions;
import ai.docling.api.serve.convert.request.options.OutputFormat;
import ai.docling.api.serve.convert.request.source.HttpSource;
import ai.docling.api.serve.convert.request.target.InBodyTarget;
import ai.docling.api.serve.convert.response.ConvertDocumentResponse;
import ai.docling.client.serve.DoclingServeClientBuilderFactory;

DoclingServeApi api = DoclingServeClientBuilderFactory
    .newBuilder()
    .baseUrl("http://localhost:8000") // your Docling Serve URL
    .build();

ConvertDocumentRequest request = ConvertDocumentRequest.builder()
    .source(HttpSource.builder().url(URI.create("https://arxiv.org/pdf/2408.09869")).build())
    .options(ConvertDocumentOptions.builder()
        .toFormat(OutputFormat.MARKDOWN)
        .includeImages(true)
        .build())
    .target(InBodyTarget.builder().build())
    .build();

ConvertDocumentResponse response = api.convertSource(request);
System.out.println(response.getDocument().getMarkdownContent());

Core concepts and configuration#

Builder factory and Jackson auto‑detection#

DoclingServeClientBuilderFactory.newBuilder() chooses an implementation based on what's on your classpath:

  • Jackson 3 present → DoclingServeJackson3Client
  • Else if Jackson 2 present → DoclingServeJackson2Client
  • Otherwise → IllegalStateException

Advanced: You can customize the JSON mapper via .toBuilder().jsonParser(...) on the concrete client type if you need special Jackson modules or settings.

Base URL#

Set the Docling Serve base URL with either a String or URI:

DoclingServeApi api = DoclingServeClientBuilderFactory.newBuilder()
    .baseUrl("http://localhost:8000")
    .build();

Note: When using plain http://, the client enforces HTTP/1.1 for compatibility with FastAPI, which avoids HTTP/2 downgrade mishaps in some environments.

HTTP client customization (timeouts, proxies, TLS)#

You can supply and tune a java.net.http.HttpClient.Builder:

import java.net.http.HttpClient;
import java.time.Duration;

DoclingServeApi api = DoclingServeClientBuilderFactory.newBuilder()
    .baseUrl("https://serve.example.com")
    .httpClientBuilder(HttpClient.newBuilder()
        .connectTimeout(Duration.ofSeconds(20))
        // .proxy(ProxySelector.of(new InetSocketAddress("proxy", 8080)))
        // .sslContext(customSslContext)
    )
    .build();

Request/response logging#

Enable lightweight logging for diagnostics:

DoclingServeApi noisy = DoclingServeClientBuilderFactory.newBuilder()
    .baseUrl("http://localhost:8000")
    .logRequests()
    .logResponses()
    .build();

Health checks#

import ai.docling.api.serve.health.HealthCheckResponse;

HealthCheckResponse health = api.health();
System.out.println("Service status: " + health.getStatus());

Working with sources and targets#

All request/response types come from docling-serve-api. Common patterns:

  • HTTP source
import ai.docling.api.serve.convert.request.source.HttpSource;
var httpSource = HttpSource.builder()
    .url(URI.create("https://example.com/file.pdf"))
    // .header("Authorization", "Bearer ...")
    .build();
  • File upload (Base64)
import java.util.Base64;
import ai.docling.api.serve.convert.request.source.FileSource;
byte[] bytes = /* read file */
var fileSource = FileSource.builder()
    .filename("report.pdf")
    .base64String(Base64.getEncoder().encodeToString(bytes))
    .build();
  • Deliver results in the response body (default)
import ai.docling.api.serve.convert.request.target.InBodyTarget;
var target = InBodyTarget.builder().build();
  • Upload results to your storage via HTTP PUT
import ai.docling.api.serve.convert.request.target.PutTarget;
var put = PutTarget.builder()
    .uri(URI.create("https://storage.example.com/out/report.md"))
    // .header("Authorization", "Bearer ...")
    .build();

Error handling tips#

Transport errors (DNS, TLS, connection reset, timeouts) are thrown as standard Java exceptions from HttpClient. Conversion may also return structured errors in the response body — inspect ConvertDocumentResponse#getErrors() even when content is present:

var result = api.convertSource(request);
if (result.getErrors() != null && !result.getErrors().isEmpty()) {
  result.getErrors().forEach(err ->
      System.err.println("Component=" + err.getComponentType()
          + ", Module=" + err.getModuleName()
          + ", Message=" + err.getErrorMessage()));
}

Version compatibility#

The client is tested against all published versions of Docling Serve each week. Below are the latest run results:

Results for ghcr.io/docling-project/docling-serve as of 2025-11-20T00:45:32.858394978Z#

Here are the results:

Tag Result Details
v0.7.0 ❌ FAILURE Click for run details
v0.8.0 ❌ FAILURE Click for run details
v0.6.0 ❌ FAILURE Click for run details
v0.10.0 ❌ FAILURE Click for run details
v0.9.0 ❌ FAILURE Click for run details
v0.10.1 ❌ FAILURE Click for run details
v0.13.0 ❌ FAILURE Click for run details
v0.12.0 ❌ FAILURE Click for run details
v0.11.0 ❌ FAILURE Click for run details
v0.16.0 ❌ FAILURE Click for run details
v0.15.0 ❌ FAILURE Click for run details
v0.14.0 ❌ FAILURE Click for run details
v0.16.1 ❌ FAILURE Click for run details
v1.0.1 ✅ SUCCESS Click for run details
v1.0.0 ✅ SUCCESS Click for run details
v1.1.0 ✅ SUCCESS Click for run details
v1.2.0 ✅ SUCCESS Click for run details
v1.2.1 ✅ SUCCESS Click for run details
v1.2.2 ✅ SUCCESS Click for run details
v1.3.0 ✅ SUCCESS Click for run details
v1.3.1 ✅ SUCCESS Click for run details
v1.4.0 ✅ SUCCESS Click for run details
v1.4.1 ✅ SUCCESS Click for run details
v1.5.0 ✅ SUCCESS Click for run details
v1.5.1 ✅ SUCCESS Click for run details
v1.6.0 ✅ SUCCESS Click for run details
v1.7.0 ✅ SUCCESS Click for run details
v1.7.1 ✅ SUCCESS Click for run details
v1.7.2 ✅ SUCCESS Click for run details
v1.8.0 ✅ SUCCESS Click for run details

Details#

ghcr.io/docling-project/docling-serve:v0.7.0#
Click to expand ###### Message
Click to collapse
[Response status should not be null or empty] 
Expecting actual not to be null
###### Full stack trace
Click to collapse
java.lang.AssertionError: [Response status should not be null or empty] 
Expecting actual not to be null
    at ai.docling.client.tester.service.TagsTester.checkDoclingResponse(TagsTester.java:120)
    at ai.docling.client.tester.service.TagsTester.doConversion(TagsTester.java:108)
    at ai.docling.client.tester.service.TagsTester.testTag(TagsTester.java:63)
    at ai.docling.client.tester.service.TagsTester.lambda$testTags$0(TagsTester.java:42)
    at ai.docling.client.tester.service.WorkParallelizer.lambda$transformInParallelAndWait$1(WorkParallelizer.java:19)
    at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromItemSupplier.subscribe(UniCreateFromItemSupplier.java:28)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:35)
    at io.smallrye.mutiny.operators.uni.UniRunSubscribeOn.lambda$subscribe$0(UniRunSubscribeOn.java:27)
    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)
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:45228 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:45230 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:45230 - "POST /v1/convert/source HTTP/1.1" 404 Not Found
ghcr.io/docling-project/docling-serve:v0.8.0#
Click to expand ###### Message
Click to collapse
[Response status should not be null or empty] 
Expecting actual not to be null
###### Full stack trace
Click to collapse
java.lang.AssertionError: [Response status should not be null or empty] 
Expecting actual not to be null
    at ai.docling.client.tester.service.TagsTester.checkDoclingResponse(TagsTester.java:120)
    at ai.docling.client.tester.service.TagsTester.doConversion(TagsTester.java:108)
    at ai.docling.client.tester.service.TagsTester.testTag(TagsTester.java:63)
    at ai.docling.client.tester.service.TagsTester.lambda$testTags$0(TagsTester.java:42)
    at ai.docling.client.tester.service.WorkParallelizer.lambda$transformInParallelAndWait$1(WorkParallelizer.java:19)
    at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromItemSupplier.subscribe(UniCreateFromItemSupplier.java:28)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:35)
    at io.smallrye.mutiny.operators.uni.UniRunSubscribeOn.lambda$subscribe$0(UniRunSubscribeOn.java:27)
    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)
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:55520 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:55530 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:55530 - "POST /v1/convert/source HTTP/1.1" 404 Not Found
ghcr.io/docling-project/docling-serve:v0.6.0#
Click to expand ###### Message
Click to collapse
[Response status should not be null or empty] 
Expecting actual not to be null
###### Full stack trace
Click to collapse
java.lang.AssertionError: [Response status should not be null or empty] 
Expecting actual not to be null
    at ai.docling.client.tester.service.TagsTester.checkDoclingResponse(TagsTester.java:120)
    at ai.docling.client.tester.service.TagsTester.doConversion(TagsTester.java:108)
    at ai.docling.client.tester.service.TagsTester.testTag(TagsTester.java:63)
    at ai.docling.client.tester.service.TagsTester.lambda$testTags$0(TagsTester.java:42)
    at ai.docling.client.tester.service.WorkParallelizer.lambda$transformInParallelAndWait$1(WorkParallelizer.java:19)
    at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromItemSupplier.subscribe(UniCreateFromItemSupplier.java:28)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:35)
    at io.smallrye.mutiny.operators.uni.UniRunSubscribeOn.lambda$subscribe$0(UniRunSubscribeOn.java:27)
    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)
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:48420 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:48436 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:48436 - "POST /v1/convert/source HTTP/1.1" 404 Not Found
ghcr.io/docling-project/docling-serve:v0.10.0#
Click to expand ###### Message
Click to collapse
[Response status should not be null or empty] 
Expecting actual not to be null
###### Full stack trace
Click to collapse
java.lang.AssertionError: [Response status should not be null or empty] 
Expecting actual not to be null
    at ai.docling.client.tester.service.TagsTester.checkDoclingResponse(TagsTester.java:120)
    at ai.docling.client.tester.service.TagsTester.doConversion(TagsTester.java:108)
    at ai.docling.client.tester.service.TagsTester.testTag(TagsTester.java:63)
    at ai.docling.client.tester.service.TagsTester.lambda$testTags$0(TagsTester.java:42)
    at ai.docling.client.tester.service.WorkParallelizer.lambda$transformInParallelAndWait$1(WorkParallelizer.java:19)
    at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromItemSupplier.subscribe(UniCreateFromItemSupplier.java:28)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:35)
    at io.smallrye.mutiny.operators.uni.UniRunSubscribeOn.lambda$subscribe$0(UniRunSubscribeOn.java:27)
    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)
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:38806 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:38814 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:38814 - "POST /v1/convert/source HTTP/1.1" 404 Not Found
ghcr.io/docling-project/docling-serve:v0.9.0#
Click to expand ###### Message
Click to collapse
[Response status should not be null or empty] 
Expecting actual not to be null
###### Full stack trace
Click to collapse
java.lang.AssertionError: [Response status should not be null or empty] 
Expecting actual not to be null
    at ai.docling.client.tester.service.TagsTester.checkDoclingResponse(TagsTester.java:120)
    at ai.docling.client.tester.service.TagsTester.doConversion(TagsTester.java:108)
    at ai.docling.client.tester.service.TagsTester.testTag(TagsTester.java:63)
    at ai.docling.client.tester.service.TagsTester.lambda$testTags$0(TagsTester.java:42)
    at ai.docling.client.tester.service.WorkParallelizer.lambda$transformInParallelAndWait$1(WorkParallelizer.java:19)
    at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromItemSupplier.subscribe(UniCreateFromItemSupplier.java:28)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:35)
    at io.smallrye.mutiny.operators.uni.UniRunSubscribeOn.lambda$subscribe$0(UniRunSubscribeOn.java:27)
    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)
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:57150 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:57164 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:57164 - "POST /v1/convert/source HTTP/1.1" 404 Not Found
ghcr.io/docling-project/docling-serve:v0.10.1#
Click to expand ###### Message
Click to collapse
[Response status should not be null or empty] 
Expecting actual not to be null
###### Full stack trace
Click to collapse
java.lang.AssertionError: [Response status should not be null or empty] 
Expecting actual not to be null
    at ai.docling.client.tester.service.TagsTester.checkDoclingResponse(TagsTester.java:120)
    at ai.docling.client.tester.service.TagsTester.doConversion(TagsTester.java:108)
    at ai.docling.client.tester.service.TagsTester.testTag(TagsTester.java:63)
    at ai.docling.client.tester.service.TagsTester.lambda$testTags$0(TagsTester.java:42)
    at ai.docling.client.tester.service.WorkParallelizer.lambda$transformInParallelAndWait$1(WorkParallelizer.java:19)
    at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromItemSupplier.subscribe(UniCreateFromItemSupplier.java:28)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:35)
    at io.smallrye.mutiny.operators.uni.UniRunSubscribeOn.lambda$subscribe$0(UniRunSubscribeOn.java:27)
    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)
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:49774 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:49782 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:49782 - "POST /v1/convert/source HTTP/1.1" 404 Not Found
ghcr.io/docling-project/docling-serve:v0.13.0#
Click to expand ###### Message
Click to collapse
[Response status should not be null or empty] 
Expecting actual not to be null
###### Full stack trace
Click to collapse
java.lang.AssertionError: [Response status should not be null or empty] 
Expecting actual not to be null
    at ai.docling.client.tester.service.TagsTester.checkDoclingResponse(TagsTester.java:120)
    at ai.docling.client.tester.service.TagsTester.doConversion(TagsTester.java:108)
    at ai.docling.client.tester.service.TagsTester.testTag(TagsTester.java:63)
    at ai.docling.client.tester.service.TagsTester.lambda$testTags$0(TagsTester.java:42)
    at ai.docling.client.tester.service.WorkParallelizer.lambda$transformInParallelAndWait$1(WorkParallelizer.java:19)
    at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromItemSupplier.subscribe(UniCreateFromItemSupplier.java:28)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:35)
    at io.smallrye.mutiny.operators.uni.UniRunSubscribeOn.lambda$subscribe$0(UniRunSubscribeOn.java:27)
    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)
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:38940 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:38942 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:38942 - "POST /v1/convert/source HTTP/1.1" 404 Not Found
ghcr.io/docling-project/docling-serve:v0.12.0#
Click to expand ###### Message
Click to collapse
[Response status should not be null or empty] 
Expecting actual not to be null
###### Full stack trace
Click to collapse
java.lang.AssertionError: [Response status should not be null or empty] 
Expecting actual not to be null
    at ai.docling.client.tester.service.TagsTester.checkDoclingResponse(TagsTester.java:120)
    at ai.docling.client.tester.service.TagsTester.doConversion(TagsTester.java:108)
    at ai.docling.client.tester.service.TagsTester.testTag(TagsTester.java:63)
    at ai.docling.client.tester.service.TagsTester.lambda$testTags$0(TagsTester.java:42)
    at ai.docling.client.tester.service.WorkParallelizer.lambda$transformInParallelAndWait$1(WorkParallelizer.java:19)
    at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromItemSupplier.subscribe(UniCreateFromItemSupplier.java:28)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:35)
    at io.smallrye.mutiny.operators.uni.UniRunSubscribeOn.lambda$subscribe$0(UniRunSubscribeOn.java:27)
    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)
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:46382 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:46394 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:46394 - "POST /v1/convert/source HTTP/1.1" 404 Not Found
ghcr.io/docling-project/docling-serve:v0.11.0#
Click to expand ###### Message
Click to collapse
[Response status should not be null or empty] 
Expecting actual not to be null
###### Full stack trace
Click to collapse
java.lang.AssertionError: [Response status should not be null or empty] 
Expecting actual not to be null
    at ai.docling.client.tester.service.TagsTester.checkDoclingResponse(TagsTester.java:120)
    at ai.docling.client.tester.service.TagsTester.doConversion(TagsTester.java:108)
    at ai.docling.client.tester.service.TagsTester.testTag(TagsTester.java:63)
    at ai.docling.client.tester.service.TagsTester.lambda$testTags$0(TagsTester.java:42)
    at ai.docling.client.tester.service.WorkParallelizer.lambda$transformInParallelAndWait$1(WorkParallelizer.java:19)
    at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromItemSupplier.subscribe(UniCreateFromItemSupplier.java:28)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:35)
    at io.smallrye.mutiny.operators.uni.UniRunSubscribeOn.lambda$subscribe$0(UniRunSubscribeOn.java:27)
    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)
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:41680 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:41692 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:41692 - "POST /v1/convert/source HTTP/1.1" 404 Not Found
ghcr.io/docling-project/docling-serve:v0.16.0#
Click to expand ###### Message
Click to collapse
[Response status should not be null or empty] 
Expecting actual not to be null
###### Full stack trace
Click to collapse
java.lang.AssertionError: [Response status should not be null or empty] 
Expecting actual not to be null
    at ai.docling.client.tester.service.TagsTester.checkDoclingResponse(TagsTester.java:120)
    at ai.docling.client.tester.service.TagsTester.doConversion(TagsTester.java:108)
    at ai.docling.client.tester.service.TagsTester.testTag(TagsTester.java:63)
    at ai.docling.client.tester.service.TagsTester.lambda$testTags$0(TagsTester.java:42)
    at ai.docling.client.tester.service.WorkParallelizer.lambda$transformInParallelAndWait$1(WorkParallelizer.java:19)
    at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromItemSupplier.subscribe(UniCreateFromItemSupplier.java:28)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:35)
    at io.smallrye.mutiny.operators.uni.UniRunSubscribeOn.lambda$subscribe$0(UniRunSubscribeOn.java:27)
    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)
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:53054 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:53064 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:53064 - "POST /v1/convert/source HTTP/1.1" 404 Not Found
ghcr.io/docling-project/docling-serve:v0.15.0#
Click to expand ###### Message
Click to collapse
[Response status should not be null or empty] 
Expecting actual not to be null
###### Full stack trace
Click to collapse
java.lang.AssertionError: [Response status should not be null or empty] 
Expecting actual not to be null
    at ai.docling.client.tester.service.TagsTester.checkDoclingResponse(TagsTester.java:120)
    at ai.docling.client.tester.service.TagsTester.doConversion(TagsTester.java:108)
    at ai.docling.client.tester.service.TagsTester.testTag(TagsTester.java:63)
    at ai.docling.client.tester.service.TagsTester.lambda$testTags$0(TagsTester.java:42)
    at ai.docling.client.tester.service.WorkParallelizer.lambda$transformInParallelAndWait$1(WorkParallelizer.java:19)
    at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromItemSupplier.subscribe(UniCreateFromItemSupplier.java:28)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:35)
    at io.smallrye.mutiny.operators.uni.UniRunSubscribeOn.lambda$subscribe$0(UniRunSubscribeOn.java:27)
    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)
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:49752 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:49756 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:49756 - "POST /v1/convert/source HTTP/1.1" 404 Not Found
ghcr.io/docling-project/docling-serve:v0.14.0#
Click to expand ###### Message
Click to collapse
[Response status should not be null or empty] 
Expecting actual not to be null
###### Full stack trace
Click to collapse
java.lang.AssertionError: [Response status should not be null or empty] 
Expecting actual not to be null
    at ai.docling.client.tester.service.TagsTester.checkDoclingResponse(TagsTester.java:120)
    at ai.docling.client.tester.service.TagsTester.doConversion(TagsTester.java:108)
    at ai.docling.client.tester.service.TagsTester.testTag(TagsTester.java:63)
    at ai.docling.client.tester.service.TagsTester.lambda$testTags$0(TagsTester.java:42)
    at ai.docling.client.tester.service.WorkParallelizer.lambda$transformInParallelAndWait$1(WorkParallelizer.java:19)
    at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromItemSupplier.subscribe(UniCreateFromItemSupplier.java:28)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:35)
    at io.smallrye.mutiny.operators.uni.UniRunSubscribeOn.lambda$subscribe$0(UniRunSubscribeOn.java:27)
    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)
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:34826 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:34842 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:34842 - "POST /v1/convert/source HTTP/1.1" 404 Not Found
ghcr.io/docling-project/docling-serve:v0.16.1#
Click to expand ###### Message
Click to collapse
[Response status should not be null or empty] 
Expecting actual not to be null
###### Full stack trace
Click to collapse
java.lang.AssertionError: [Response status should not be null or empty] 
Expecting actual not to be null
    at ai.docling.client.tester.service.TagsTester.checkDoclingResponse(TagsTester.java:120)
    at ai.docling.client.tester.service.TagsTester.doConversion(TagsTester.java:108)
    at ai.docling.client.tester.service.TagsTester.testTag(TagsTester.java:63)
    at ai.docling.client.tester.service.TagsTester.lambda$testTags$0(TagsTester.java:42)
    at ai.docling.client.tester.service.WorkParallelizer.lambda$transformInParallelAndWait$1(WorkParallelizer.java:19)
    at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21)
    at io.smallrye.mutiny.operators.uni.builders.UniCreateFromItemSupplier.subscribe(UniCreateFromItemSupplier.java:28)
    at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:35)
    at io.smallrye.mutiny.operators.uni.UniRunSubscribeOn.lambda$subscribe$0(UniRunSubscribeOn.java:27)
    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)
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:54670 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:54672 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:54672 - "POST /v1/convert/source HTTP/1.1" 404 Not Found
ghcr.io/docling-project/docling-serve:v1.0.1#
Click to expand ###### Message
Click to collapse
Tag v1.0.1 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:55512 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:55518 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:55518 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.0.0#
Click to expand ###### Message
Click to collapse
Tag v1.0.0 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:35478 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:35484 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:35484 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.1.0#
Click to expand ###### Message
Click to collapse
Tag v1.1.0 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:58614 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:58626 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:58626 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.2.0#
Click to expand ###### Message
Click to collapse
Tag v1.2.0 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:57390 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:57404 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:57404 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.2.1#
Click to expand ###### Message
Click to collapse
Tag v1.2.1 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:55024 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:55032 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:55032 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.2.2#
Click to expand ###### Message
Click to collapse
Tag v1.2.2 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:51646 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:51650 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:51650 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.3.0#
Click to expand ###### Message
Click to collapse
Tag v1.3.0 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:49088 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:49096 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:49096 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.3.1#
Click to expand ###### Message
Click to collapse
Tag v1.3.1 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:49424 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:49434 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:49434 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.4.0#
Click to expand ###### Message
Click to collapse
Tag v1.4.0 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:58866 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:58872 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:58872 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.4.1#
Click to expand ###### Message
Click to collapse
Tag v1.4.1 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:56960 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:56970 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:56970 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.5.0#
Click to expand ###### Message
Click to collapse
Tag v1.5.0 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:53370 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:53378 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:53378 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.5.1#
Click to expand ###### Message
Click to collapse
Tag v1.5.1 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:42388 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:42404 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:42404 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.6.0#
Click to expand ###### Message
Click to collapse
Tag v1.6.0 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:50472 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:50484 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:50484 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.7.0#
Click to expand ###### Message
Click to collapse
Tag v1.7.0 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:34020 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:34030 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:34030 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.7.1#
Click to expand ###### Message
Click to collapse
Tag v1.7.1 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
[INFO] 2025-11-20 00:42:33,132 [RapidOCR] base.py:22: Using engine_name: onnxruntime
[INFO] 2025-11-20 00:42:33,134 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx
[INFO] 2025-11-20 00:42:33,245 [RapidOCR] base.py:22: Using engine_name: onnxruntime
[INFO] 2025-11-20 00:42:33,245 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx
[INFO] 2025-11-20 00:42:33,282 [RapidOCR] base.py:22: Using engine_name: onnxruntime
[INFO] 2025-11-20 00:42:33,283 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:35552 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:35558 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:35558 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.7.2#
Click to expand ###### Message
Click to collapse
Tag v1.7.2 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
[INFO] 2025-11-20 00:43:31,878 [RapidOCR] base.py:22: Using engine_name: onnxruntime
[INFO] 2025-11-20 00:43:31,879 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx
[INFO] 2025-11-20 00:43:31,931 [RapidOCR] base.py:22: Using engine_name: onnxruntime
[INFO] 2025-11-20 00:43:31,931 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx
[INFO] 2025-11-20 00:43:31,956 [RapidOCR] base.py:22: Using engine_name: onnxruntime
[INFO] 2025-11-20 00:43:31,956 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:47230 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:47244 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:47244 - "POST /v1/convert/source HTTP/1.1" 200 OK
ghcr.io/docling-project/docling-serve:v1.8.0#
Click to expand ###### Message
Click to collapse
Tag v1.8.0 is ok
###### Docling server logs
click to expand
Starting production server 🚀

Server started at http://0.0.0.0:5001
Documentation at http://0.0.0.0:5001/docs
Scalar docs at http://0.0.0.0:5001/scalar

Logs:
INFO:     Started server process [1]
INFO:     Waiting for application startup.
[INFO] 2025-11-20 00:45:24,654 [RapidOCR] base.py:22: Using engine_name: onnxruntime
[INFO] 2025-11-20 00:45:24,655 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx
[INFO] 2025-11-20 00:45:24,705 [RapidOCR] base.py:22: Using engine_name: onnxruntime
[INFO] 2025-11-20 00:45:24,705 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx
[INFO] 2025-11-20 00:45:24,729 [RapidOCR] base.py:22: Using engine_name: onnxruntime
[INFO] 2025-11-20 00:45:24,729 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     172.17.0.1:43374 - "GET /health HTTP/1.1" 200 OK
INFO:     172.17.0.1:43390 - "GET /health HTTP/1.1" 200 OK
WARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.
INFO:     172.17.0.1:43390 - "POST /v1/convert/source HTTP/1.1" 200 OK