docling-project / docling-project/docling

Can't run latest docling because RapidOCR can't find `arch_config.yaml`

Open
#3,580 1 comment 1 reaction 0 assignees View on GitHub
bug
Dominant language
Python
Stars
66.4k
Forks
4.8k
Avg merge
2d 21h
Merged PRs (30d)
84

Description

### Bug

I try to parse any PDF with recent version of Docling as a command-line tool. It crashes with a `FileNotFoundError` for `python3.12/site-packages/rapidocr/inference_engine/pytorch/networks/arch_config.yaml`. Example and full log below.

### Steps to reproduce

```
uv tool run docling --image-export-mode placeholder 'https://mirror.math.princeton.edu/pub/CTAN/macros/latex/contrib/ipsum/doc/ipsum-doc.pdf'
```

This command works with 2.91.0 but fails with the same error beginning with version 2.92.0. I set the version explicitly via:

```
$ uv tool run docling==2.92.0 --image-export-mode placeholder 'https://mirror.math.princeton.edu/pub/CTAN/macros/latex/contrib/ipsum/doc/ipsum-doc.pdf'
Installed 99 packages in 638ms
warning: An executable named `docling` is not provided by package `docling` but is available via the dependency `docling-slim`. Consider using `uv tool run --from docling-slim docling` instead.
[INFO] 2026-06-10 13:32:38,447 [RapidOCR] base.py:22: Using engine_name: torch
[INFO] 2026-06-10 13:32:38,456 [RapidOCR] device_config.py:57: Using CPU device
[INFO] 2026-06-10 13:32:38,458 [RapidOCR] download_file.py:68: Initiating download: https://www.modelscope.cn/models/RapidAI/RapidOCR/resolve/v3.8.0/torch/PP-OCRv4/det/ch_PP-OCRv4_det_mobile.pth
[INFO] 2026-06-10 13:32:39,835 [RapidOCR] download_file.py:82: Download size: 13.83MB
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 14.5M/14.5M [00:00<00:00, 17.3MiB/s]
[INFO] 2026-06-10 13:32:40,696 [RapidOCR] download_file.py:95: Successfully saved to: /Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/rapidocr/models/ch_PP-OCRv4_det_mobile.pth
[INFO] 2026-06-10 13:32:40,701 [RapidOCR] main.py:50: Using /Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/rapidocr/models/ch_PP-OCRv4_det_mobile.pth
Traceback (most recent call last):
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/bin/docling", line 12, in
sys.exit(app())
^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/typer/main.py", line 1149, in __call__
raise e
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/typer/main.py", line 1132, in __call__
return get_command(self)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/click/core.py", line 1524, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/typer/core.py", line 726, in main
return _main(
^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/typer/core.py", line 190, in _main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/click/core.py", line 1308, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/click/core.py", line 877, in invoke
return callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/typer/main.py", line 1511, in wrapper
return callback(**use_params)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/docling/cli/main.py", line 973, in convert
export_documents(
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/docling/cli/main.py", line 241, in export_documents
for conv_res in conv_results:
^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/docling/document_converter.py", line 454, in convert_all
for conv_res in conv_res_iter:
^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/docling/document_converter.py", line 571, in _convert
for item in map(
^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/docling/document_converter.py", line 618, in _process_document
conv_res = self._execute_pipeline(in_doc, raises_on_error=raises_on_error)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/docling/document_converter.py", line 639, in _execute_pipeline
pipeline = self._get_pipeline(in_doc.format)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/docling/document_converter.py", line 601, in _get_pipeline
self.initialized_pipelines[cache_key] = pipeline_class(
^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/docling/pipeline/standard_pdf_pipeline.py", line 467, in __init__
self._init_models()
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/docling/pipeline/standard_pdf_pipeline.py", line 485, in _init_models
self.ocr_model = self._make_ocr_model(art_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/docling/pipeline/standard_pdf_pipeline.py", line 545, in _make_ocr_model
return factory.create_instance(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/docling/models/factories/base_factory.py", line 57, in create_instance
return _cls(options=options, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/docling/models/stages/ocr/auto_ocr_model.py", line 103, in __init__
self._engine = RapidOcrModel(
^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/docling/models/stages/ocr/rapid_ocr_model.py", line 258, in __init__
self.reader = RapidOCR(
^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/rapidocr/main.py", line 46, in __init__
self._initialize(cfg)
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/rapidocr/main.py", line 71, in _initialize
self.text_det = TextDetector(cfg.Det)
^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/rapidocr/ch_ppocr_det/main.py", line 47, in __init__
self.session = get_engine(cfg.engine_type)(cfg)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/rapidocr/inference_engine/pytorch/main.py", line 24, in __init__
self.predictor = ModelLoader(cfg, self.device).predictor
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/rapidocr/inference_engine/pytorch/networks/main.py", line 21, in __init__
arch_config = self._load_arch_config(model_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/rapidocr/inference_engine/pytorch/networks/main.py", line 55, in _load_arch_config
all_arch_config = OmegaConf.load(self.DEFAULT_CFG_PATH)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/omegaconf/omegaconf.py", line 189, in load
with io.open(os.path.abspath(file_), "r", encoding="utf-8") as f:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/Users/yotam/.cache/uv/archive-v0/gDbS9wz397FrQOuD/lib/python3.12/site-packages/rapidocr/inference_engine/pytorch/networks/arch_config.yaml'
```

### Docling version

#### Fails (latest)

```
$ uv tool run docling --version
Docling version: 2.101.0
Docling Core version: 2.81.0
Docling IBM Models version: 3.13.3
Docling Parse version: 6.2.0
Python: cpython-312 (3.12.11)
Platform: macOS-15.7.4-arm64-arm-64bit
```

#### Fails (2.92.0)

```
$ uv tool run docling==2.92.0 --version
warning: An executable named `docling` is not provided by package `docling` but is available via the dependency `docling-slim`. Consider using `uv tool run --from docling-slim docling` instead.
Docling version: 2.92.0
Docling Core version: 2.81.0
Docling IBM Models version: 3.13.3
Docling Parse version: 5.11.0
Python: cpython-312 (3.12.11)
Platform: macOS-15.7.4-arm64-arm-64bit
```

#### Works (2.91.0)

```
$ uv tool run docling==2.91.0 --version
Docling version: 2.91.0
Docling Core version: 2.81.0
Docling IBM Models version: 3.13.3
Docling Parse version: 5.11.0
Python: cpython-312 (3.12.11)
Platform: macOS-15.7.4-arm64-arm-64bit
```

### Python version

#### Fails (latest)

```
$ uv run --with=docling python3 --version
Python 3.12.11
```

#### Fails (2.92.0)

```
$ uv run --with=docling==2.92.0 python3 --version
Python 3.12.11
```

#### Fails (2.91.0)

```
$ uv run --with=docling==2.91.0 python3 --version
Python 3.12.11
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.