Exceptions raised by actions are getting lost

This is the exception that I get instead. My play project is part of a multi-project build, and I’m running it with sbt api/run. I don’t have any special error handling installed. Is this a Play problem or an SBT problem?

[info] p.c.s.AkkaHttpServer - Listening for HTTP on /[0:0:0:0:0:0:0:0]:9000

(Server started, use Enter to stop and go back to the console...)

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/Users/dan/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/inject/guice/4.2.3/guice-4.2.3.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2020-10-15 00:55:32 INFO  play.api.http.EnabledFilters  Enabled Filters (see <https://www.playframework.com/documentation/latest/Filters>):

    play.filters.csrf.CSRFFilter
    play.filters.headers.SecurityHeadersFilter
    play.filters.hosts.AllowedHostsFilter
    play.filters.cors.CORSFilter

2020-10-15 00:55:32 INFO  play.api.Play  Application started (Dev) (no global state)
2020-10-15 00:55:32 ERROR p.api.http.DefaultHttpErrorHandler  Error while handling error
java.lang.ClassCastException: class xsbti.BasicVirtualFileRef cannot be cast to class java.io.File (xsbti.BasicVirtualFileRef is in unnamed module of loader sbt.internal.MetaBuildLoader @6e75aa0d; java.io.File is in module java.base of loader 'bootstrap')
    at play.sbt.run.PlayReload$.$anonfun$sourceMap$1(PlayReload.scala:69)
    at scala.collection.MapLike$MappedValues.get(MapLike.scala:260)
    at play.runsupport.Reloader.$anonfun$findSource$1(Reloader.scala:547)
    at scala.Option.flatMap(Option.scala:271)
    at play.runsupport.Reloader.findSource(Reloader.scala:546)
    at play.core.server.DevServerStart$$anon$1$$anon$2.sourceOf(DevServerStart.scala:171)
    at play.core.SourceMapper.$anonfun$sourceFor$1(ApplicationProvider.scala:21)
    at play.core.SourceMapper.$anonfun$sourceFor$1$adapted(ApplicationProvider.scala:21)
    at scala.collection.ArrayOps$.find$extension(ArrayOps.scala:684)
    at play.core.SourceMapper.sourceFor(ApplicationProvider.scala:21)
    at play.core.SourceMapper.sourceFor$(ApplicationProvider.scala:20)
    at play.core.server.DevServerStart$$anon$1$$anon$2.sourceFor(DevServerStart.scala:169)
    at play.api.http.HttpErrorHandlerExceptions$.$anonfun$throwableToUsefulException$1(HttpErrorHandler.scala:358)
    at scala.Option.flatMap(Option.scala:283)
    at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:358)
    at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:261)
    at play.filters.cors.AbstractCORSPolicy$$anonfun$1.applyOrElse(AbstractCORSPolicy.scala:128)
    at play.filters.cors.AbstractCORSPolicy$$anonfun$1.applyOrElse(AbstractCORSPolicy.scala:126)
    at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:453)
    at play.api.libs.streams.Execution$trampoline$.execute(Execution.scala:70)
    at scala.concurrent.impl.Promise$Transformation.submitWithValue(Promise.scala:392)
    at scala.concurrent.impl.Promise$DefaultPromise.submitWithValue(Promise.scala:302)
    at scala.concurrent.impl.Promise$DefaultPromise.tryComplete0(Promise.scala:249)
    at scala.concurrent.impl.Promise$Transformation.handleFailure(Promise.scala:407)
    at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:469)
    at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:56)
    at akka.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:93)
    at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
    at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:94)
    at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:93)
    at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:48)
    at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:48)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)

My application.conf is:

play {
  filters {
    enabled += "play.filters.cors.CORSFilter"
    headers {
      frameOptions = null
    }
  }

  modules {
  }
}

slick.dbs.default.profile = "slick.jdbc.PostgresProfile$"
slick.dbs.default.db.driver = "org.postgresql.Driver"
slick.dbs.default.db.url = "jdbc:postgresql://localhost/wolfbone"
slick.dbs.default.db.user = "postgres"
slick.dbs.default.db.password = "password"

kafka {
  bootstrap-servers = "localhost:9092"

  consumer: ${akka.kafka.consumer} {
    kafka-clients {
      bootstrap.servers = "localhost:9092"
    }
  }

  producer: ${akka.kafka.producer} {
    kafka-clients {

    }
  }
}