diff --git a/exercises/conversions/from_str.rs b/exercises/conversions/from_str.rs
index 41fccd7e..4beebacd 100644
--- a/exercises/conversions/from_str.rs
+++ b/exercises/conversions/from_str.rs
@@ -2,6 +2,7 @@
 // Additionally, upon implementing FromStr, you can use the `parse` method
 // on strings to generate an object of the implementor type.
 // You can read more about it at https://doc.rust-lang.org/std/str/trait.FromStr.html
+use std::error;
 use std::str::FromStr;
 
 #[derive(Debug)]
@@ -23,7 +24,7 @@ struct Person {
 // If everything goes well, then return a Result of a Person object
 
 impl FromStr for Person {
-    type Err = String;
+    type Err = Box<dyn error::Error>;
     fn from_str(s: &str) -> Result<Person, Self::Err> {
     }
 }
diff --git a/info.toml b/info.toml
index 2068750a..4a1d3aa3 100644
--- a/info.toml
+++ b/info.toml
@@ -884,5 +884,5 @@ path = "exercises/conversions/from_str.rs"
 mode = "test"
 hint = """
 The implementation of FromStr should return an Ok with a Person object,
-or an Err with a string if the string is not valid.
+or an Err with an error if the string is not valid.
 This is almost like the `try_from_into` exercise."""