← Back to scan
File as GitHub Issue repo: HKUDS/RAG-Anything

Push this scan report to HKUDS/RAG-Anything

Click the green button below to open GitHub’s new-issue form, pre-filled with the report title, summary table, top findings, and an embedded score-card image. No authentication needed — you review on GitHub before submitting. Repobility is credited as the scanner.

Embedded score card image

This image will render at the top of the issue body. Hosted on Repobility, refreshes automatically after re-scans.

Repobility score card

Issue title

Bare Except Pass

Curate findings to include

Pick exactly which findings appear in the issue body. By default the top 5 are included. Uncheck noise, check what matters.

Top 5 (default)
Severity Rule Title File:line
CRIT MINED107 Missing import: `queue` used but not imported raganything/parser.py:838
CRIT MINED107 Missing import: `html` used but not imported raganything/enhanced_markdown.py:299
HIGH MINED106 Phantom test coverage: test_get_parser_rejects_unknown_parser tests/testpaddleocr_parser.py:18
HIGH MINED001 [MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows e… raganything/__init__.py:41
HIGH MINED001 [MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows e… examples/lmstudio_integration_example.py:131
HIGH MINED106 Phantom test coverage: test_parse_pdf_raises_import_error_when_pdf_renderer_missing tests/testpaddleocr_parser.py:59
HIGH MINED106 Phantom test coverage: test_invalid_env_contents tests/testparser_kwargs.py:144
HIGH MINED106 Phantom test coverage: test_invalid_env_type tests/testparser_kwargs.py:129
HIGH MINED106 Phantom test coverage: test_docling_unknown_kwargs tests/testparser_kwargs.py:113
HIGH MINED106 Phantom test coverage: test_docling_env_accepted_but_ignored tests/testparser_kwargs.py:84
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:478
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:481
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:470
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:389
HIGH MINED108 `self.create_fallback_evaluation` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:392
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:370
HIGH MINED108 `self.create_fallback_evaluation` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:373
HIGH MINED108 `self.fix_json_format` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:384
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:361
HIGH MINED108 `self.fix_json_format` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:365
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:338
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:445
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:425
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:417
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:318
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:317
HIGH MINED108 `self.get_comprehensive_evaluation_prompt` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:309
HIGH MINED108 `self.get_accuracy_evaluation_prompt` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:301
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:281
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:210
HIGH MINED108 `self.logger` used but never assigned in __init__ reproduce/llm_answer_evaluator.py:44
HIGH MINED108 `self.embedding_func_factory` used but never assigned in __init__ examples/vllm_integration_example.py:204
HIGH MINED106 Phantom test coverage: test_chat_completion examples/vllm_integration_example.py:157
HIGH MINED106 Phantom test coverage: test_connection examples/vllm_integration_example.py:124
HIGH MINED108 `self._make_embedding_func` used but never assigned in __init__ examples/ollama_integration_example.py:184
HIGH MINED106 Phantom test coverage: test_chat examples/ollama_integration_example.py:159
HIGH MINED106 Phantom test coverage: test_embedding examples/ollama_integration_example.py:137
HIGH MINED106 Phantom test coverage: test_connection examples/ollama_integration_example.py:108
HIGH MINED108 `self._make_embedding_func` used but never assigned in __init__ examples/minimax_integration_example.py:223
HIGH MINED106 Phantom test coverage: test_chat_completion examples/minimax_integration_example.py:195
HIGH MINED106 Phantom test coverage: test_connection examples/minimax_integration_example.py:150
HIGH MINED108 `self.embedding_func_factory` used but never assigned in __init__ examples/lmstudio_integration_example.py:183
HIGH MINED106 Phantom test coverage: test_chat_completion examples/lmstudio_integration_example.py:134
HIGH MINED106 Phantom test coverage: test_connection examples/lmstudio_integration_example.py:102
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v5` .github/workflows/test.yaml:23
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v4` .github/workflows/test.yaml:20
HIGH MINED115 Action `stefanzweifel/git-auto-commit-action` pinned to mutable ref `@v5` .github/workflows/linting.yaml:33
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v2` .github/workflows/linting.yaml:20
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v2` .github/workflows/linting.yaml:17
HIGH MINED115 Action `pypa/gh-action-pypi-publish` pinned to mutable ref `@release/v1` .github/workflows/pypi-publish.yml:50
HIGH MINED115 Action `actions/download-artifact` pinned to mutable ref `@v4` .github/workflows/pypi-publish.yml:44
HIGH MINED115 Action `actions/upload-artifact` pinned to mutable ref `@v4` .github/workflows/pypi-publish.yml:27
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v5` .github/workflows/pypi-publish.yml:16
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v4` .github/workflows/pypi-publish.yml:15
HIGH MINED131 pre-commit hook `https://github.com/mgedmin/check-manifest` pinned to mutable rev `0.49` .pre-commit-config.yaml:15
HIGH MINED131 pre-commit hook `https://github.com/astral-sh/ruff-pre-commit` pinned to mutable rev `v0.… .pre-commit-config.yaml:8
HIGH MINED131 pre-commit hook `https://github.com/pre-commit/pre-commit-hooks` pinned to mutable rev `v… .pre-commit-config.yaml:2
HIGH PYSEC-2020-151 uvicorn: PYSEC-2020-151 requirements.txt
HIGH PYSEC-2020-150 uvicorn: PYSEC-2020-150 requirements.txt
HIGH GHSA-cx63-2mw6-8hw5 setuptools: GHSA-cx63-2mw6-8hw5 requirements.txt
HIGH PYSEC-2025-49 setuptools: PYSEC-2025-49 requirements.txt
HIGH PYSEC-2022-43012 setuptools: PYSEC-2022-43012 requirements.txt
HIGH GHSA-wp53-j4wj-2cfg python-multipart: GHSA-wp53-j4wj-2cfg requirements.txt
HIGH GHSA-pp6c-gr5w-3c5g python-multipart: GHSA-pp6c-gr5w-3c5g requirements.txt
HIGH GHSA-59g5-xgcq-4qw3 python-multipart: GHSA-59g5-xgcq-4qw3 requirements.txt
HIGH GHSA-7gcm-g887-7qv7 protobuf: GHSA-7gcm-g887-7qv7 requirements.txt
HIGH GHSA-6mq8-rvhq-8wgg aiohttp: GHSA-6mq8-rvhq-8wgg requirements.txt
MED SEC034 [SEC034] Log Injection / Log Forging — unsanitized user input in log: User input is logge… reproduce/query.py:261
MED SEC034 [SEC034] Log Injection / Log Forging — unsanitized user input in log: User input is logge… examples/raganything_example.py:227
MED MINED109 Mutable default argument in `vision_model_func` (list) reproduce/index.py:131
MED MINED109 Mutable default argument in `llm_model_func` (list) reproduce/index.py:119
MED MINED109 Mutable default argument in `vision_model_func` (list) reproduce/query.py:132
MED MINED109 Mutable default argument in `llm_model_func` (list) reproduce/query.py:120
MED MINED109 Mutable default argument in `vision_model_func` (list) examples/insert_content_list_example.py:214
MED MINED109 Mutable default argument in `llm_model_func` (list) examples/insert_content_list_example.py:202
MED MINED111 Bare except continues silently examples/ollama_integration_example.py:155
MED MINED111 Bare except continues silently examples/ollama_integration_example.py:132
MED MINED111 Bare except continues silently examples/minimax_integration_example.py:164
MED MINED111 Bare except continues silently examples/minimax_integration_example.py:227
MED MINED111 Bare except continues silently examples/minimax_integration_example.py:205
MED MINED111 Bare except continues silently examples/minimax_integration_example.py:190
MED MINED109 Mutable default argument in `<lambda>` (list) examples/modalprocessors_example.py:186
MED MINED109 Mutable default argument in `<lambda>` (list) examples/modalprocessors_example.py:42
MED MINED109 Mutable default argument in `<lambda>` (list) examples/modalprocessors_example.py:25
MED MINED111 Bare except continues silently examples/lmstudio_integration_example.py:236
MED MINED111 Bare except continues silently examples/lmstudio_integration_example.py:288
MED MINED111 Bare except continues silently examples/lmstudio_integration_example.py:214
MED MINED111 Bare except continues silently examples/lmstudio_integration_example.py:195
MED MINED111 Bare except continues silently examples/lmstudio_integration_example.py:156
MED MINED111 Bare except continues silently examples/lmstudio_integration_example.py:120
MED MINED111 Bare except continues silently examples/batch_processing_example.py:305
MED MINED111 Bare except continues silently examples/batch_processing_example.py:482
MED MINED111 Bare except continues silently examples/batch_processing_example.py:395
MED MINED111 Bare except continues silently examples/batch_processing_example.py:312
MED MINED111 Bare except continues silently examples/batch_processing_example.py:230
MED MINED111 Bare except continues silently examples/batch_processing_example.py:183
MED MINED109 Mutable default argument in `vision_model_func` (list) examples/raganything_example.py:135
MED MINED109 Mutable default argument in `llm_model_func` (list) examples/raganything_example.py:123
MED COMP001 [COMP001] High cognitive complexity: Function `attach_public_media_urls` has cognitive co… raganything/asset_urls.py:65
MED DEPCUR-GHA GitHub Action `actions/checkout@v2` is 4 major version(s) behind (latest v6.0.3) .github/workflows/linting.yaml:17
MED DEPCUR-GHA GitHub Action `actions/checkout@v4` is 2 major version(s) behind (latest v6.0.3) .github/workflows/pypi-publish.yml:15
MED DEPCUR-GHA GitHub Action `actions/checkout@v4` is 2 major version(s) behind (latest v6.0.3) .github/workflows/test.yaml:20
MED DEPCUR-GHA GitHub Action `stefanzweifel/git-auto-commit-action@v5` is 2 major version(s) behind (lat… .github/workflows/linting.yaml:33
MED DEPCUR-GHA GitHub Action `actions/setup-python@v2` is 4 major version(s) behind (latest v6.2.0) .github/workflows/linting.yaml:20
MED DEPCUR-GHA GitHub Action `actions/download-artifact@v4` is 4 major version(s) behind (latest v8.0.1) .github/workflows/pypi-publish.yml:44
MED DEPCUR-GHA GitHub Action `actions/upload-artifact@v4` is 3 major version(s) behind (latest v7.0.1) .github/workflows/pypi-publish.yml:27
MED DEPCUR-GHA GitHub Action `actions/setup-python@v5` is 1 major version(s) behind (latest v6.2.0) .github/workflows/pypi-publish.yml:16
MED DEPCUR-GHA GitHub Action `actions/setup-python@v5` is 1 major version(s) behind (latest v6.2.0) .github/workflows/test.yaml:23
MED MINED124 requirements.txt: `tqdm` has no version pin requirements.txt:7
MED MINED124 requirements.txt: `mineru[core]` has no version pin requirements.txt:5
MED MINED124 requirements.txt: `lightrag-hku` has no version pin requirements.txt:3
MED MINED124 requirements.txt: `huggingface_hub` has no version pin requirements.txt:1
MED GHSA-mj87-hwqh-73pj python-multipart: GHSA-mj87-hwqh-73pj requirements.txt
MED GHSA-x284-j5p8-9c5p pypdf: GHSA-x284-j5p8-9c5p requirements.txt
MED GHSA-jj6c-8h6c-hppx pypdf: GHSA-jj6c-8h6c-hppx requirements.txt
MED GHSA-7gw9-cf7v-778f pypdf: GHSA-7gw9-cf7v-778f requirements.txt
MED GHSA-4pxv-j86v-mhcw pypdf: GHSA-4pxv-j86v-mhcw requirements.txt
MED GHSA-3crg-w4f6-42mx pypdf: GHSA-3crg-w4f6-42mx requirements.txt
MED GHSA-65pc-fj4g-8rjx idna: GHSA-65pc-fj4g-8rjx requirements.txt
MED GHSA-w2fm-2cpv-w7v5 aiohttp: GHSA-w2fm-2cpv-w7v5 requirements.txt
MED GHSA-p998-jp59-783m aiohttp: GHSA-p998-jp59-783m requirements.txt
MED GHSA-m5qp-6w8w-w647 aiohttp: GHSA-m5qp-6w8w-w647 requirements.txt
MED GHSA-jj3x-wxrx-4x23 aiohttp: GHSA-jj3x-wxrx-4x23 requirements.txt
MED GHSA-g84x-mcqj-x9qq aiohttp: GHSA-g84x-mcqj-x9qq requirements.txt
MED GHSA-c427-h43c-vf67 aiohttp: GHSA-c427-h43c-vf67 requirements.txt
MED GHSA-8495-4g3g-x7pr aiohttp: GHSA-8495-4g3g-x7pr requirements.txt
MED GHSA-6jhg-hg63-jvvf aiohttp: GHSA-6jhg-hg63-jvvf requirements.txt
MED WEB003 Public web service has no security.txt .well-known/security.txt
LOW COMP001 [COMP001] High cognitive complexity: Function `set_prompt_language` has cognitive complex… raganything/prompt_manager.py:84
LOW COMP001 [COMP001] High cognitive complexity: Function `test_connection` has cognitive complexity … examples/minimax_integration_example.py:150
LOW GHSA-mwh4-6h8g-pg8w aiohttp: GHSA-mwh4-6h8g-pg8w requirements.txt
LOW GHSA-mqqc-3gqh-h2x8 aiohttp: GHSA-mqqc-3gqh-h2x8 requirements.txt
LOW GHSA-hcc4-c3v8-rx92 aiohttp: GHSA-hcc4-c3v8-rx92 requirements.txt
LOW GHSA-fh55-r93g-j68g aiohttp: GHSA-fh55-r93g-j68g requirements.txt
LOW GHSA-966j-vmvw-g2g9 aiohttp: GHSA-966j-vmvw-g2g9 requirements.txt
LOW GHSA-9548-qrrj-x5pj aiohttp: GHSA-9548-qrrj-x5pj requirements.txt
LOW GHSA-69f9-5gxw-wvc2 aiohttp: GHSA-69f9-5gxw-wvc2 requirements.txt
LOW GHSA-63hf-3vf5-4wqf aiohttp: GHSA-63hf-3vf5-4wqf requirements.txt
LOW GHSA-54jq-c3m8-4m76 aiohttp: GHSA-54jq-c3m8-4m76 requirements.txt
LOW GHSA-3wq7-rqq7-wx6j aiohttp: GHSA-3wq7-rqq7-wx6j requirements.txt
LOW GHSA-2vrm-gr82-f7m5 aiohttp: GHSA-2vrm-gr82-f7m5 requirements.txt
INFO MINED063 [MINED063] Toctou Os Path Exists: if os.path.exists(p): open(p) — file can be replaced/de… reproduce/query.py:231
INFO MINED062 [MINED062] Python Dataclass No Fields: @dataclass over an empty class — unfinished model. raganything/config.py:12
INFO MINED043 [MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr… raganything/asset_urls.py:113
INFO MINED049 [MINED049] Print Pii: Logging password/token/email/ssn directly to stdout. scripts/create_tiktoken_cache.py:13
INFO MINED049 [MINED049] Print Pii: Logging password/token/email/ssn directly to stdout. examples/minimax_integration_example.py:153
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… raganything/__init__.py:17
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… examples/lmstudio_integration_example.py:132
Reset to top 5 148 findings available (after auto-suppression of test files + won't-fix)

Issue body (markdown)

## Code-quality scan: `HKUDS/RAG-Anything`

**Score: 78/100 (B)**  ·  165 findings  ·  scanned 2026-06-03 04:02 UTC  ·  24,304 LOC

| Severity | Count |
|---|---|
| CRITICAL | 2 |
| HIGH | 65 |
| MEDIUM | 61 |
| LOW | 13 |

📊 [Full filterable report](https://repobility.com/scan/507e544d-338a-43d7-8a53-56003e3386c2/)  ·  ![scorecard](https://repobility.com/scan/507e544d-338a-43d7-8a53-56003e3386c2/report.png?v=1780459337-s2)

### Top findings

1. **CRITICAL** `MINED107` — Missing import: `queue` used but not imported
   `raganything/parser.py:838` · ✓ Repobility
2. **CRITICAL** `MINED107` — Missing import: `html` used but not imported
   `raganything/enhanced_markdown.py:299` · ✓ Repobility
3. **HIGH** `MINED106` — Phantom test coverage: test_get_parser_rejects_unknown_parser
   `tests/testpaddleocr_parser.py:18` · ✓ Repobility
4. **HIGH** `MINED001` — Bare Except Pass
   `raganything/__init__.py:41` · CWE-755 · ✓ Repobility
5. **HIGH** `MINED001` — Bare Except Pass
   `examples/lmstudio_integration_example.py:131` · CWE-755 · ✓ Repobility

---

_Filed automatically. Close this issue if not useful — we won't refile. Full report: https://repobility.com/scan/507e544d-338a-43d7-8a53-56003e3386c2/_
Premium account
This scan was submitted by a Enterprise-tier account. Premium accounts have full outreach control â Repobility doesn't pre-fill the 'file as GitHub issue' button for paid users. You can still file the issue manually using the markdown body above (Copy markdown), or contact us if you'd like batch-filing enabled for your account.
Megaproject â high spam risk
Could not determine 'HKUDS/RAG-Anything' star count (GitHub API rate-limited or unreachable). When in doubt about repo size, prefer opening a focused PR or a discussion rather than an issue.
Already filed
142/196 findings (72%) on this scan are already flagged as test-file, won't-fix, or suppressed. The scan is too noisy to file as a single issue. Curate down to specific actionable findings, or address the FP source first.

The button opens GitHubâs new-issue page in a new tab. You will see the title + body pre-filled â review, edit if you want, then click GitHubâs "Submit new issue" button. Repobility never posts anything on your behalf.

For real security findings on big repos: use the project's SECURITY.md or private advisory flow instead of a public issue.