Repository navigation
fix(cli): Ignore ENOTCONN from disconnected mounts during file scans - #1544
Merged
Merged
Conversation
Scanning into a stale or disconnected FUSE/network mount makes readdir fail with ENOTCONN. handleFileError treated that as unexpected and captured it as an error, even though the walk skips the directory and continues. Treat ENOTCONN like ETIMEDOUT.
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
BYK
approved these changes
Oct 19, 2026
This branch was previously deployed
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.
Trigger: project auto-detection walks the working tree. If the walk reaches a stale or disconnected FUSE or network mount (for example a dropped sshfs/s3fs mount),
readdirfails withENOTCONN: socket is not connected, scandir.Root cause:
listDirEntriesinsrc/lib/scan/walker.tssends readdir failures tohandleFileError, which skips the directory and continues the walk. ButisIgnorableFileErrorinsrc/lib/dsn/fs-utils.tsdidn't listENOTCONN, so each occurrence was also captured as an unexpected error even though the command itself carried on normally. The same situation asETIMEDOUTon a cloud-mounted directory, which is already ignored.Change:
ENOTCONNis now treated as an expected file system error, alongsideETIMEDOUT. The walk behaves the same (the directory is skipped); only the false error report goes away. Other codes such asEIOare still reported.Validation:
handleFileErrorregression test intest/lib/dsn/fs-utils.test.tsfor anENOTCONNscandir error. It failed before the fix and passes after it. The existing scan tests intest/lib/scanpass.pnpm run tsc,pnpm run lint, andpnpm --filter sentry run lintpass.pnpm --filter sentry run testpasses except for 6 permission-based tests (completions, telemetry, upgrade, code-scanner, file-changes), which fail the same way on unmodifiedmainin the sandbox I used.via Junior system actor
scheduler.--
View Junior Session [Sentry]