[BUG] Hang with large ignored directory

Resolved 💬 4 comments Opened Jul 26, 2025 by alecmocatta Closed Jan 3, 2026

Environment

  • Platform (select one):
  • [x] Anthropic API
  • [ ] AWS Bedrock
  • [ ] Google Vertex AI
  • [ ] Other: <!-- specify -->
  • Claude CLI version: 1.0.61 (Claude Code)
  • Operating System: macOS 15.5
  • Terminal: VSCode terminal

Bug Description

I have a directory in my workspace with a 100k+ files. My existing tooling (VSCode, rust-analyzer, cargo, github cli, codex, cursor, etc) is able to ignore it as configured so has no issue with this. Claude Code however hangs on ~almost any command, while performing e.g. Search(pattern: "**/Cargo.toml").

Steps to Reproduce

  1. Create a directory with 100k files
  2. Ignore it with:

``json
{
"ignorePatterns": [
"/dump"
],
"permissions": {
"allow": [],
"deny": [
"Read(/dump)"
]
}
}
``

  1. Run any query that triggers a Search(pattern: "**/...")

Expected Behavior

It completes ~immediately as the rest of the workspace is only ~500 files.

Actual Behavior

It takes many minutes/hours (I gave up and switched to other tools).

Additional Context

A stack trace during the hang, suggesting relating to fs.readdir or fs.glob:

    2559 Thread_71300775   DispatchQueue_1: com.apple.main-thread  (serial)
    + 2559 start  (in dyld) + 6076  [0x196b12b98]
    +   2559 node::Start(int, char**)  (in node) + 608  [0x102a52634]
    +     2559 node::NodeMainInstance::Run()  (in node) + 124  [0x102aa6938]
    +       2559 node::NodeMainInstance::Run(node::ExitCode*, node::Environment*)  (in node) + 184  [0x102aa6ba4]
    +         2559 node::SpinEventLoopInternal(node::Environment*)  (in node) + 240  [0x1029cd3ec]
    +           2559 uv_run  (in libuv.1.dylib) + 276  [0x107f1ab58]
    +             2559 uv__io_poll  (in libuv.1.dylib) + 1224  [0x107f2abd0]
    +               2559 uv__async_io  (in libuv.1.dylib) + 288  [0x107f1a6bc]
    +                 2559 uv__work_done  (in libuv.1.dylib) + 180  [0x107f16e0c]
    +                   2559 node::MakeLibuvRequestCallback<uv_fs_s, void (*)(uv_fs_s*)>::Wrapper(uv_fs_s*)  (in node) + 116  [0x102a77524]
    +                     2559 node::fs::AfterScanDir(uv_fs_s*)  (in node) + 640  [0x102a820e4]
    +                       2559 node::fs::FSReqCallback::Resolve(v8::Local<v8::Value>)  (in node) + 240  [0x102a80bf8]
    +                         2559 node::AsyncWrap::MakeCallback(v8::Local<v8::Function>, int, v8::Local<v8::Value>*)  (in node) + 240  [0x1029db928]
    +                           2559 node::InternalMakeCallback(node::Environment*, v8::Local<v8::Object>, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context, v8::Local<v8::Value>)  (in node) + 508  [0x1029ccbd8]
    +                             2559 v8::Function::Call(v8::Isolate*, v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*)  (in node) + 176  [0x102bbf5c4]
    +                               2559 v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::DirectHandle<v8::internal::Object>, v8::internal::DirectHandle<v8::internal::Object>, v8::base::Vector<v8::internal::DirectHandle<v8::internal::Object> const>)  (in node) + 88  [0x102ce2ccc]
    +                                 2559 v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&)  (in node) + 1532  [0x102ce32dc]
    +                                   2559 Builtins_JSEntry  (in node) + 176  [0x103506570]
    +                                     2559 Builtins_JSEntryTrampoline  (in node) + 172  [0x1035068cc]
    +                                       2559 ???  (in <unknown binary>)  [0x1387774ec]
    +                                         2559 ???  (in <unknown binary>)  [0x1387666c8]
    +                                           2559 ???  (in <unknown binary>)  [0x1387778d0]
    +                                             2553 ???  (in <unknown binary>)  [0x138769c28]
    +                                             ! 2553 Builtins_CEntry_Return1_ArgvOnStack_BuiltinExit  (in node) + 84  [0x1035a5e94]
    +                                             !   2553 v8::internal::Builtin_ArrayUnshift(int, unsigned long*, v8::internal::Isolate*)  (in node) + 148  [0x102bf3580]
    +                                             !     2553 v8::internal::(anonymous namespace)::FastElementsAccessor<v8::internal::(anonymous namespace)::FastPackedObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)2>>::AddArguments(v8::internal::DirectHandle<v8::internal::JSArray>, v8::internal::DirectHandle<v8::internal::FixedArrayBase>, v8::internal::BuiltinArguments*, unsigned int, v8::internal::(anonymous namespace)::Where)  (in node) + 296  [0x102eeabfc]
    +                                             !       2553 v8::internal::(anonymous namespace)::FastElementsAccessor<v8::internal::(anonymous namespace)::FastPackedObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)2>>::MoveElements(v8::internal::Isolate*, v8::internal::DirectHandle<v8::internal::JSArray>, v8::internal::DirectHandle<v8::internal::FixedArrayBase>, int, int, int, int, int)  (in node) + 260  [0x102eeadf8]
    +                                             !         1378 v8::internal::WriteBarrier::ForRange<v8::internal::FullObjectSlot>(v8::internal::Heap*, v8::internal::Tagged<v8::internal::HeapObject>, v8::internal::FullObjectSlot, v8::internal::FullObjectSlot)  (in node) + 584,660,...  [0x102d83f40,0x102d83f8c,...]
    +                                             !         745 v8::internal::WriteBarrier::ForRange<v8::internal::FullObjectSlot>(v8::internal::Heap*, v8::internal::Tagged<v8::internal::HeapObject>, v8::internal::FullObjectSlot, v8::internal::FullObjectSlot)  (in node) + 636  [0x102d83f74]
    +                                             !         : 739 heap::base::BasicSlotSet<8ul>::Insert<(heap::base::BasicSlotSet<8ul>::AccessMode)1>(unsigned long)  (in node) + 20,52,...  [0x102d8480c,0x102d8482c,...]
    +                                             !         : 6 v8::internal::RememberedSet<(v8::internal::RememberedSetType)0>::Insert<(v8::internal::AccessMode)1>(v8::internal::MutablePageMetadata*, unsigned long)  (in node) + 20,0  [0x102d83c00,0x102d83bec]
    +                                             !         245 v8::internal::Heap::MoveRange(v8::internal::Tagged<v8::internal::HeapObject>, v8::internal::FullObjectSlot, v8::internal::FullObjectSlot, int, v8::internal::WriteBarrierMode)  (in node) + 296  [0x102d8c050]
    +                                             !         : 245 _platform_memmove  (in libsystem_platform.dylib) + 536,556  [0x196eec468,0x196eec47c]
    +                                             !         185 heap::base::BasicSlotSet<8ul>::Insert<(heap::base::BasicSlotSet<8ul>::AccessMode)1>(unsigned long)  (in node) + 124,128  [0x102d84874,0x102d84878]
    +                                             6 ???  (in <unknown binary>)  [0x138769ae0]
    +                                               5 Builtins_JSConstructStubGeneric  (in node) + 376  [0x103505978]
    +                                               : 2 ???  (in <unknown binary>)  [0x138764f1c]
    +                                               : | 2 Builtins_CEntry_Return1_ArgvOnStack_BuiltinExit  (in node) + 84  [0x1035a5e94]
    +                                               : |   2 v8::internal::Builtin_StringPrototypeNormalizeIntl(int, unsigned long*, v8::internal::Isolate*)  (in node) + 336  [0x102c08d64]
    +                                               : |     2 v8::internal::Intl::Normalize(v8::internal::Isolate*, v8::internal::DirectHandle<v8::internal::String>, v8::internal::DirectHandle<v8::internal::Object>)  (in node) + 272  [0x102f4f278]
    +                                               : |       2 v8::internal::Intl::ToICUUnicodeString(v8::internal::Isolate*, v8::internal::DirectHandle<v8::internal::String>, int)  (in node) + 380  [0x102f4961c]
    +                                               : 1 ???  (in <unknown binary>)  [0x138764ce8]
    +                                               : | 1 Builtins_FindOrderedHashMapEntry  (in node) + 1200  [0x10356bfb0]
    +                                               : |   1 Builtins_FindOrderedHashMapEntry  (in node) + 1248  [0x10356bfe0]
    +                                               : 1 ???  (in <unknown binary>)  [0x138764e24]
    +                                               : | 1 Builtins_FindOrderedHashMapEntry  (in node) + 1036  [0x10356bf0c]
    +                                               : |   1 v8::internal::OrderedHashMap::GetHash(v8::internal::Isolate*, unsigned long)  (in node) + 32  [0x103008e60]
    +                                               : |     1 v8::internal::Object::GetSimpleHash(v8::internal::Tagged<v8::internal::Object>)  (in node) + 232  [0x102bd18e8]
    +                                               : |       1 v8::internal::String::ComputeAndSetRawHash()  (in node) + 28  [0x103025e14]
    +                                               : |         1 v8::internal::String::ComputeAndSetRawHash(v8::internal::SharedStringAccessGuardIfNeeded const&)  (in node) + 212  [0x103025f18]
    +                                               : 1 ???  (in <unknown binary>)  [0x138764a88]
    +                                               1 Builtins_JSConstructStubGeneric  (in node) + 52  [0x103505834]
    +                                                 1 Builtins_FastNewObject  (in node) + 436  [0x103505dd4]

cc:

  • #79

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗