Q: Scala Play - ProvisionException: Could not find a suitable constructor I looked everywhere but the answers didn't help. Here is the stacktrace:
! @7832lo6ll - Internal server error, for (GET) [/] ->

play.api.UnexpectedException: Unexpected exception[ProvisionException: Unable to provision, see the following errors:

1) Could not find a suitable constructor in controllers.FileCtrl. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
  at controllers.FileCtrl.class(FileCtrl.scala:34)
  while locating controllers.FileCtrl
    for parameter 11 at router.Routes.<init>(Routes.scala:155)
  while locating router.Routes
  while locating play.api.inject.RoutesProvider
  while locating play.api.routing.Router

1 error]
        at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:165) ~[play-server_2.11-2.4.11.jar:2.4.11]
        at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:121) ~[play-server_2.11-2.4.11.jar:2.4.11]
        at scala.Option.map(Option.scala:146) ~[scala-library-2.11.8.jar:na]
        at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:121) ~[play-server_2.11-2.4.11.jar:2.4.11]
        at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:119) ~[play-server_2.11-2.4.11.jar:2.4.11]
        at scala.util.Success.flatMap(Try.scala:231) ~[scala-library-2.11.8.jar:na]
        at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:119) ~[play-server_2.11-2.4.11.jar:2.4.11]
        at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:111) ~[play-server_2.11-2.4.11.jar:2.4.11]
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) ~[scala-library-2.11.8.jar:na]
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) ~[scala-library-2.11.8.jar:na]
Caused by: com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) Could not find a suitable constructor in controllers.FileCtrl. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
  at controllers.FileCtrl.class(FileCtrl.scala:34)
  while locating controllers.FileCtrl
    for parameter 11 at router.Routes.<init>(Routes.scala:155)
  while locating router.Routes
  while locating play.api.inject.RoutesProvider
  while locating play.api.routing.Router

1 error
        at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1025) ~[guice-4.0.jar:na]
        at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051) ~[guice-4.0.jar:na]
        at play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:321) ~[play_2.11-2.4.11.jar:2.4.11]
        at play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:316) ~[play_2.11-2.4.11.jar:2.4.11]
        at play.api.Application$class.routes(Application.scala:112) ~[play_2.11-2.4.11.jar:2.4.11]
        at play.api.DefaultApplication.routes(Application.scala:241) ~[play_2.11-2.4.11.jar:2.4.11]
        at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:90) ~[play_2.11-2.4.11.jar:2.4.11]
        at play.api.Play$$anonfun$start$1.apply(Play.scala:87) ~[play_2.11-2.4.11.jar:2.4.11]
        at play.api.Play$$anonfun$start$1.apply(Play.scala:87) ~[play_2.11-2.4.11.jar:2.4.11]
        at play.utils.Threads$.withContextClassLoader(Threads.scala:21) ~[play_2.11-2.4.11.jar:2.4.11]

The FileCtrl.scala:
class FileCtrl @Inject()(actions: Actions, helpers: Helpers, errorHandler: ErrorHandler, cacheApi: CacheApi, fileDAO: FileDAO, companyFileService: CompanyFileService, imageService: ImageService, configuration: Configuration, settingService: SettingService, fileService: FileService)(val messagesApi: MessagesApi) extends Controller with I18nSupport with Flow {...

So there is in fact a @Inject.
Play Version is 2.4, Scala Version 2.11.6
What confuses me the most is that the stacktrace doesn't mention any further issues, for example, no injected class is mentioned which could be the issue here.

A: Just to test, maybe you can try normal constructor parameter for messagesApi instead of curried version? So instead of
(val messagesApi: MessagesApi) 

Just
([other constructor params ...], val messagesApi: MessagesApi) 

