diff --git a/crates/provider/src/native.rs b/crates/provider/src/native.rs
index 353bcac04a0ff209ac14d433fac8286e929e1133..7b7a7176a9454eeba0cb52f7d403f2feca44653c 100644
--- a/crates/provider/src/native.rs
+++ b/crates/provider/src/native.rs
@@ -877,6 +877,38 @@ mod tests {
         assert!(namespace.nodes().await.get(node.name()).is_some());
     }
 
+    #[tokio::test]
+    async fn namespace_spawn_node_method_should_returns_an_error_if_a_node_already_exists_with_this_name(
+    ) {
+        let fs = InMemoryFileSystem::new(HashMap::from([
+            (OsString::from_str("/").unwrap(), InMemoryFile::dir()),
+            (OsString::from_str("/tmp").unwrap(), InMemoryFile::dir()),
+        ]));
+        let provider = NativeProvider::new(fs.clone());
+        let namespace = provider.create_namespace().await.unwrap();
+
+        namespace
+            .spawn_node(SpawnNodeOptions::new(
+                "mynode",
+                "/home/user/Work/parity/zombienet-sdk/crates/provider/testing/dummy_node",
+            ))
+            .await
+            .unwrap();
+
+        let result = namespace
+            .spawn_node(SpawnNodeOptions::new(
+                "mynode",
+                "/home/user/Work/parity/zombienet-sdk/crates/provider/testing/dummy_node",
+            ))
+            .await;
+
+        // we must match here because Arc<dyn Node + Send + Sync> doesn't implements Debug, so unwrap_err is not an option
+        match result {
+            Ok(_) => panic!("expected result to be an error"),
+            Err(err) => assert_eq!(err.to_string(), "Duplicated node name: mynode"),
+        };
+    }
+
     #[tokio::test]
     async fn namespace_generate_files_method_should_create_files_at_the_correct_locations_using_given_commands(
     ) {
@@ -1105,7 +1137,7 @@ mod tests {
             .await;
 
         assert!(
-            matches!(result, Ok(Err((exit_code, stderr))) if !exit_code.success() && stderr == "sh: 0: Illegal option -k\n")
+            matches!(result, Ok(Err((exit_code, stderr))) if !exit_code.success() && stderr.len() > 0)
         );
     }