Retrieve value from item wrapped in a Future[Option[Item]]
It's better that you are staying in the Futures domain, no longer trying to unwrap to String.

It's not so easy to follow all of the underscore-based function expressions. I'd try something like...

val subject: Future[String] = {
  repository.findById(someId) map { mbItem =&gt;
    mbItem match {
      case Some( item ) =&gt; item.subject
      case None         =&gt; ""
    }
  }
}