{"record":{"id":"f06e8e1c3b6e6c0d","repo":"biomejs/biome","slug":"failed-to-spawn-scanner-thread","errorCode":null,"errorMessage":"failed to spawn scanner thread","messagePattern":"failed to spawn scanner thread","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/biome_service/src/scanner.rs","lineNumber":276,"sourceCode":"        project_key: ProjectKey,\n        project_path: &Utf8Path,\n        dependencies: ModuleDependencies,\n        trigger: IndexTrigger,\n    ) -> Result<Vec<Diagnostic>, WorkspaceError> {\n        let scan_kind = self\n            .get_scan_kind_for_project(project_key)\n            .ok_or_else(WorkspaceError::no_project)?;\n\n        let (interner, _path_receiver) = PathInterner::new();\n\n        let (diagnostics_sender, diagnostics_receiver) = unbounded();\n        let collector = DiagnosticsCollector::new(false);\n\n        let diagnostics = thread::scope(|scope| {\n            let handler = thread::Builder::new()\n                .name(\"biome::scanner\".to_string())\n                .spawn_scoped(scope, || collector.run(diagnostics_receiver))\n                .expect(\"failed to spawn scanner thread\");\n\n            // The traversal context is scoped to ensure all the channels it\n            // contains are properly closed once scanning finishes.\n            let mut ctx = ScanContext {\n                workspace,\n                project_key,\n                interner,\n                diagnostics_sender,\n                evaluated_paths: Default::default(),\n                scan_kind,\n                trigger,\n                watch: true,\n                dependencies: Default::default(),\n            };\n\n            let (_duration, folders_to_watch) =\n                scan_dependencies(project_path, dependencies, &mut ctx);\n","sourceCodeStart":258,"sourceCodeEnd":294,"githubUrl":"https://github.com/biomejs/biome/blob/0fca643d22845c28e0e0b7375013155e3f80717f/crates/biome_service/src/scanner.rs#L258-L294","documentation":"Error \"failed to spawn scanner thread\" thrown in biomejs/biome.","triggerScenarios":"Thrown at crates/biome_service/src/scanner.rs:252 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check system thread limits (ulimit, cgroup constraints) if spawning the scanner thread fails.","Reduce configured scanner parallelism before starting the workspace server."],"exampleFix":"// Inspect the attached io::Error source for OS-level spawn failure details","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0fca643d22845c28e0e0b7375013155e3f80717f","analyzedAt":"2026-08-20T00:25:09.682Z","contentChangedAt":"2026-08-20T00:25:09.682Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}