fix(rag): close downloaded temp file before reopening it in WordExtractor - #39894
Open
AlexMultiAgent wants to merge 1 commit into
Open
fix(rag): close downloaded temp file before reopening it in WordExtractor#39894AlexMultiAgent wants to merge 1 commit into
AlexMultiAgent wants to merge 1 commit into
Conversation
AlexMultiAgent
requested review from
JohnJyong,
QuantumGhost and
laipz8200
as code owners
August 2, 2026 11:34
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fix(rag): close downloaded temp file before reopening it in WordExtractor
Fixes #39889
Summary
NamedTemporaryFilehandle immediately after writing the remote response so the path can be reopened on Windows.close();close()stays idempotent and tolerates a missing file.Root cause
WordExtractor.__init__downloads a remote.docxintotempfile.NamedTemporaryFile()and keeps the handle open.extract()reopensself.file_paththrough python-docx. On Windows, an openNamedTemporaryFilecannot be reopened by another handle (PermissionError, surfaced asPackageNotFoundError), so remote .docx extraction is broken on Windows. On Linux/macOS reopening works, which is why CI did not catch it.Validation
test_init_downloads_via_remote_fetchernow passes;WordExtractor(url).extract()returns parsed documents.test_word_extractor.pycases pass on Windows; unchanged behavior on POSIX.Checklist
make lint && make type-check(backend) andcd web && pnpm exec vp staged(frontend) to appease the lint godsFrom Codex