When code executed as future throws InterruptedException, future is not completed (neither success or failure). Await.result will block indefinitely if timeout is infinite.
It is quite typical for any concurrent code to throw InterruptedException, for example Thread.sleep() might throw one. It is extremely error prone that this type of exception is swallowed and only indication is ExecutionContext's failure report, by default printed to console.