{"record":{"id":"2738ac276c6e6b97","repo":"bevyengine/bevy","slug":"b0007","errorCode":"B0007","errorMessage":"error[{}]: `{}` and `{}` parameters in system `{}` conflict{}.\nConsider:\n{}* Merging conflicting parameters into a `ParamSet`\nSee: https://bevy.org/learn/errors/{}","messagePattern":"error\\[(.+?)\\]: `(.+?)` and `(.+?)` parameters in system `(.+?)` conflict(.+?)\\.\nConsider:\n(.+?)\\* Merging conflicting parameters into a `ParamSet`\nSee: https://bevy\\.org/learn/errors/(.+?)","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/bevy_ecs/src/system/function_system.rs","lineNumber":643,"sourceCode":"    let remove_duplicate = (err1.param == err2.param && err1.access == err2.access)\n        .then_some(DebugName::borrowed(\"Removing the duplicate parameter\"));\n\n    let mut suggestions = err1\n        .suggestions\n        .iter()\n        .chain(&err2.suggestions)\n        .collect::<Vec<_>>();\n    // Remove duplicate suggestions so that we don't suggest \"Using `Without<T>`\" twice for conflicting queries.\n    suggestions.sort_by_key(|s| &***s);\n    suggestions.dedup();\n\n    let suggestions = suggestions\n        .into_iter()\n        .chain(&remove_duplicate)\n        .map(|s| format!(\"* {s}\\n\"))\n        .collect::<String>();\n\n    panic!(\n        concat!(\n            \"error[{}]: `{}` and `{}` parameters in system `{}` conflict{}.\\n\",\n            \"Consider:\\n\",\n            \"{}\",\n            \"* Merging conflicting parameters into a `ParamSet`\\n\",\n            \"See: https://bevy.org/learn/errors/{}\",\n        ),\n        code,\n        err1.param.shortname(),\n        err2.param.shortname(),\n        system_name,\n        accesses,\n        suggestions,\n        code_lower,\n    );\n}\n\n/// Formats a simple panic message for conflicting [`SystemParam`] access when debug strings are not available.","sourceCodeStart":625,"sourceCodeEnd":661,"githubUrl":"https://github.com/bevyengine/bevy/blob/a62cce8c05ceacd3bd102e678c83e2b42e5dfbe2/crates/bevy_ecs/src/system/function_system.rs#L625-L661","documentation":"panic_for_param_conflict (B0007) fires at system initialization when two system parameters declare incompatible accesses to the same component — e.g. Query<&mut T> and ResMut<Vec<T>>-like overlaps, or two &mut queries on the same component. The message lists both parameters, suggestions, and links the Bevy error page.","triggerScenarios":"fn system(q1: Query<&mut Transform>, q2: Query<&Transform>) or two ResMut< resource> of the same resource, or &mut T plus EventReader/Writer overlaps; conflict detected in init_param_or_panic during system.init().","commonSituations":"Two queries with overlapping mutable component access; Query<&mut T> alongside an event writer for a component resource; adding a second system parameter that aliases an existing one during refactoring.","solutions":["Merge conflicting parameters into a single Query or ParamSet","Use disjoint filters (With/Without/Changed) to make accesses provably disjoint","Read-only access is fine in parallel — drop the extra &mut if you only read","Split the system into multiple systems that run sequentially"],"exampleFix":"// before\nfn system(q1: Query<&mut Transform>, q2: Query<&mut Transform, With<Player>>) {}\n\n// after\nfn system(mut set: ParamSet<(Query<&mut Transform>, Query<&mut Transform, With<Player>>)>) {}","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"let result = std::panic::catch_unwind(|| system.initialize(&mut world));\nif result.is_err() { eprintln!(\"System has B0007 param conflict — use ParamSet\"); }","preventionTips":["Merge conflicting parameters into ParamSet","Prefer read-only (&) access when a mutable second access isn't needed","Use disjoint With/Without filters","Enable the debug feature to get named conflicts during development"],"tags":["bevy","ecs","systems","access-conflict"],"backgroundTag":"system-param-access-conflict","analyzedSha":"a62cce8c05ceacd3bd102e678c83e2b42e5dfbe2","analyzedAt":"2026-09-19T21:23:06.616Z","contentChangedAt":"2026-09-19T21:23:06.616Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}