AbstractMethodError with raven-logback > 7.8.5

When using all versions of raven-logback > 7.8.5 I’m running into a AbstractMethodError when running tests:
sbt.ForkMain$ForkError: java.lang.AbstractMethodError: null at ch.qos.logback.core.OutputStreamAppender.encoderInit(OutputStreamAppender.java:180) at ch.qos.logback.core.OutputStreamAppender.setOutputStream(OutputStreamAppender.java:171) at ch.qos.logback.core.FileAppender.openFile(FileAppender.java:206) at ch.qos.logback.core.FileAppender.start(FileAppender.java:127) at ch.qos.logback.core.joran.action.AppenderAction.end(AppenderAction.java:90) at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309) at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193) at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:179) at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62) at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:165) at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:152) at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110) at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53) at play.api.Logger$.configure(Logger.scala:278) at play.api.Logger$.configure(Logger.scala:232) at play.api.inject.guice.GuiceApplicationBuilder.applicationModule(GuiceApplicationBuilder.scala:78) at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:126) at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:98) ...

I tried each version down to 7.8.5 where the issue went away. We are on logback 1.2.2.

This is when running your own test suite? Can you try pinning logback to 1.2.1 just to see if it helps? That’s the version raven-logback currently builds against and it could help me debug.

Sorry for the delayed response:

I’ve pinned logback to 1.2.1 and also attempted to upgrade to sentry-logback 1.2.2 and I’m still seeing this issue.

This occurs when I attempt to start my Play application

Here is a possibly more helpful stack:
Exception in thread “main” java.lang.AbstractMethodError
at ch.qos.logback.core.OutputStreamAppender.encoderInit(OutputStreamAppender.java:180)
at ch.qos.logback.core.OutputStreamAppender.setOutputStream(OutputStreamAppender.java:171)
at ch.qos.logback.core.FileAppender.openFile(FileAppender.java:206)
at ch.qos.logback.core.FileAppender.start(FileAppender.java:127)
at ch.qos.logback.core.rolling.RollingFileAppender.start(RollingFileAppender.java:100)
at ch.qos.logback.core.joran.action.AppenderAction.end(AppenderAction.java:90)
at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:309)
at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:193)
at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:179)
at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:165)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:152)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
at play.api.libs.logback.LogbackLoggerConfigurator.configure(LogbackLoggerConfigurator.scala:94)
at play.api.libs.logback.LogbackLoggerConfigurator.configure(LogbackLoggerConfigurator.scala:62)
at play.api.inject.guice.GuiceApplicationBuilder$$anonfun$applicationModule$1.apply(GuiceApplicationBuilder.scala:102)
at play.api.inject.guice.GuiceApplicationBuilder$$anonfun$applicationModule$1.apply(GuiceApplicationBuilder.scala:102)
at scala.Option.foreach(Option.scala:257)
at play.api.inject.guice.GuiceApplicationBuilder.applicationModule(GuiceApplicationBuilder.scala:101)
at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:181)
at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:123)
at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21)
at play.core.server.ProdServerStart$.start(ProdServerStart.scala:47)
at play.core.server.ProdServerStart$.main(ProdServerStart.scala:22)
at play.core.server.ProdServerStart.main(ProdServerStart.scala)

This error is thrown when an application tries to call an abstract method without actual implementation. Abstract methods have no body and cannot be executed. This error can only occur at run time if the definition of some class has incompatibly changed since the currently executing method was last compiled. It usually happens after some library is upgraded while some is not. The dependencies are missing somehow. This means that you are using an old java version of an interface implementation which is missing a new interface method. For example java.sql.Connection interface got a new getSchema method in 1.7. If you have 1.6 JDBC driver and call Connection.getSchema you will get AbstractMethodError. So, make sure you have the latest jar file in your class path not a older copy.

if possible, migrate to the latest Sentry Logback integration which is a major bump.