{"record":{"id":"e4ec139d0d609884","repo":"bevyengine/bevy","slug":"requested-non-send-data-does-not-exist-in-the","errorCode":null,"errorMessage":"Requested non-send data {} does not exist in the `World`.\n                Did you forget to add it using `app.insert_non_send` / `app.init_non_send`?\n                Non-send data can also be added by plugins.","messagePattern":"Requested non-send data (.+?) does not exist in the `World`\\.\n                Did you forget to add it using `app\\.insert_non_send` / `app\\.init_non_send`\\?\n                Non-send data can also be added by plugins\\.","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/bevy_ecs/src/world/deferred_world.rs","lineNumber":496,"sourceCode":"    pub fn get_resource_mut<R: Resource<Mutability = Mutable>>(&mut self) -> Option<Mut<'_, R>> {\n        // SAFETY: &mut self ensure that there are no outstanding accesses to the resource\n        unsafe { self.world.get_resource_mut() }\n    }\n\n    /// Gets a mutable reference to the non-send data of the given type, if it exists.\n    ///\n    /// # Panics\n    ///\n    /// Panics if the data does not exist.\n    /// Use [`get_non_send_mut`](World::get_non_send_mut) instead if you want to handle this case.\n    ///\n    /// This function will panic if it isn't called from the same thread that the data was inserted from.\n    #[inline]\n    #[track_caller]\n    pub fn non_send_mut<R: 'static>(&mut self) -> Mut<'_, R> {\n        match self.get_non_send_mut() {\n            Some(x) => x,\n            None => panic!(\n                \"Requested non-send data {} does not exist in the `World`.\n                Did you forget to add it using `app.insert_non_send` / `app.init_non_send`?\n                Non-send data can also be added by plugins.\",\n                DebugName::type_name::<R>()\n            ),\n        }\n    }\n\n    /// Gets a mutable reference to non-send data of the given type, if it exists.\n    /// Otherwise returns `None`.\n    ///\n    /// # Panics\n    /// This function will panic if it isn't called from the same thread that the data was inserted from.\n    #[inline]\n    pub fn get_non_send_mut<R: 'static>(&mut self) -> Option<Mut<'_, R>> {\n        // SAFETY: &mut self ensure that there are no outstanding accesses to the data\n        unsafe { self.world.get_non_send_mut() }\n    }","sourceCodeStart":478,"sourceCodeEnd":514,"githubUrl":"https://github.com/bevyengine/bevy/blob/396ca727080776bd313bb892423b7d94e03b81b4/crates/bevy_ecs/src/world/deferred_world.rs#L478-L514","documentation":"Error \"Requested non-send data {} does not exist in the `World`.\n                Did you forget to add it using `app.insert_non_send` / `app.init_non_send`?\n                Non-send data can also be added by plugins.\" thrown in bevyengine/bevy.","triggerScenarios":"Thrown at crates/bevy_ecs/src/world/deferred_world.rs:496 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add the non-send data via app.insert_non_send(...) / app.init_non_send::<R>()","Use get_non_send_mut() and handle the Option instead of panicking","Only access non-send data from the main thread"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"396ca727080776bd313bb892423b7d94e03b81b4","analyzedAt":"2026-08-20T16:12:39.808Z","contentChangedAt":"2026-08-20T16:12:39.808Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}