Also, state.fanOut can throw, but that will cause an exception, not return a Future.exception. What about:
```scala
try {
  // code you have above here
}
catch {
  case t: Throwable => Future.exception(t)
}

```