After update to Jatos 3.8.1.: A problem occurred: Internal JATOS error during [...]
Hi,
I recently updated my local Jatos to the latest version (3.8.1.). Unfortunately, I am running repeatedly into some fatal errors.
First, everything seems to work normal, but after a while whenever I try to start a study, I run into the error message:
A problem occurred:
Internal JATOS error during /publix/[here comes the study code]. Check logs to get more information.
I receive this message for every study that is listed. The only solution seems to be to set up a new Jatos environment, until it crashes again. When I use the "Tests" options under "Administration" everything checks out as "OK".
The log gives me the following output:
2023-04-13 10:59:41,733 [INFO] - gui_access - GET /jatos/34 (admin)
2023-04-13 10:59:41,815 [INFO] - gui_access - GET /jatos/sidebarStudyList (admin)
2023-04-13 10:59:41,867 [INFO] - gui_access - GET /jatos/34/componentsTableData?_=1681376381774 (admin)
2023-04-13 10:59:43,106 [INFO] - gui_access - GET /jatos/34/run (admin)
2023-04-13 10:59:43,116 [INFO] - publix_access - GET /publix/6zZ6g93Wdb5
2023-04-13 10:59:43,116 [INFO] - c.p.PublixInterceptor - .run: studyCode 6zZ6g93Wdb5
2023-04-13 10:59:43,119 [ERROR] - g.ErrorHandler - Internal JATOS error: null
java.lang.NullPointerException: null
at services.publix.idcookie.IdCookieAccessor.getValueAsString(IdCookieAccessor.java:221)
at services.publix.idcookie.IdCookieAccessor.buildIdCookie(IdCookieAccessor.java:122)
at services.publix.idcookie.IdCookieAccessor.extractFromCookies(IdCookieAccessor.java:92)
at services.publix.idcookie.IdCookieAccessor.extract(IdCookieAccessor.java:72)
at services.publix.idcookie.IdCookieService.maxIdCookiesReached(IdCookieService.java:214)
at services.publix.PublixUtils.finishOldestStudyResult(PublixUtils.java:223)
at controllers.publix.workers.JatosPublix.startStudy(JatosPublix.java:107)
at controllers.publix.PublixInterceptor.run(PublixInterceptor.java:109)
at publix.Routes$$anonfun$routes$1.$anonfun$applyOrElse$9(Routes.scala:525)
at play.core.routing.HandlerInvokerFactory$$anon$8.resultCall(HandlerInvoker.scala:147)
at play.core.routing.HandlerInvokerFactory$$anon$8.resultCall(HandlerInvoker.scala:146)
at play.core.routing.HandlerInvokerFactory$JavaActionInvokerFactory$$anon$3$$anon$4$$anon$5.invocation(HandlerInvoker.scala:112)
at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:128)
at play.mvc.Action.lambda$call$0(Action.java:89)
at java.base/java.util.Optional.map(Unknown Source)
at play.mvc.Action.call(Action.java:81)
at play.http.DefaultActionCreator$1.call(DefaultActionCreator.java:33)
at play.mvc.Action.call(Action.java:66)
at controllers.publix.actionannotation.PublixAccessLoggingAction.call(PublixAccessLoggingAction.java:37)
at play.mvc.Action.lambda$call$0(Action.java:89)
at java.base/java.util.Optional.map(Unknown Source)
at play.mvc.Action.call(Action.java:81)
at play.db.jpa.TransactionalAction.lambda$call$0(TransactionalAction.java:36)
at play.db.jpa.DefaultJPAApi.lambda$withTransaction$5(DefaultJPAApi.java:302)
at play.db.jpa.DefaultJPAApi.withTransaction(DefaultJPAApi.java:207)
at play.db.jpa.DefaultJPAApi.withTransaction(DefaultJPAApi.java:298)
at play.db.jpa.TransactionalAction.call(TransactionalAction.java:35)
at play.core.j.JavaAction.$anonfun$apply$8(JavaAction.scala:188)
at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:678)
at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:467)
at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:77)
at play.api.libs.streams.Execution$trampoline$.execute(Execution.scala:70)
at play.core.j.HttpExecutionContext.execute(HttpExecutionContext.scala:69)
at scala.concurrent.impl.Promise$Transformation.submitWithValue(Promise.scala:429)
at scala.concurrent.impl.Promise$DefaultPromise.submitWithValue(Promise.scala:338)
at scala.concurrent.impl.Promise$DefaultPromise.dispatchOrAddCallbacks(Promise.scala:312)
at scala.concurrent.impl.Promise$DefaultPromise.map(Promise.scala:182)
at scala.concurrent.Future$.apply(Future.scala:678)
at play.core.j.JavaAction.apply(JavaAction.scala:189)
at play.api.mvc.Action.$anonfun$apply$2(Action.scala:95)
at play.api.libs.streams.StrictAccumulator.$anonfun$mapFuture$4(Accumulator.scala:181)
at scala.util.Try$.apply(Try.scala:210)
at play.api.libs.streams.StrictAccumulator.$anonfun$mapFuture$3(Accumulator.scala:181)
at scala.Function1.$anonfun$andThen$1(Function1.scala:85)
at scala.Function1.$anonfun$andThen$1(Function1.scala:85)
at scala.Function1.$anonfun$andThen$1(Function1.scala:85)
at play.api.libs.streams.StrictAccumulator.run(Accumulator.scala:216)
at play.core.server.AkkaHttpServer.$anonfun$runAction$4(AkkaHttpServer.scala:436)
at akka.http.scaladsl.util.FastFuture$.strictTransform$1(FastFuture.scala:41)
at akka.http.scaladsl.util.FastFuture$.$anonfun$transformWith$3(FastFuture.scala:51)
at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:484)
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:49)
at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Help would be very much appreciated!
Cheers
Moritz
Comments
Hi Moritz,
I have seen this before. It's probably a bug somewhere in JATOS' cookie handling. But the problem for me is that I cannot reproduce it on my JATOSes. It seems to happen only with certain browsers. I try to pinpoint it in the source code to be able to fix it but so far I have only a rough idea.
But fortunately you can help me :). Can you please send me the content of your JATOS cookies in your browser where the error occurs? Please do not delete them (since this would solve the issue for you but I still don't know where the bug is located :/ ). If you don't know how to get the cookie content here is image for how it works in Firefox (and if you know how it works please ignore the picture; I don't want to sound condescending). On the right is the whole content of the cookie. Please copy all cookies that start with a JATOS_IDS.
Thank you very much for you help,
Kristian
Hi Kristian,
sorry, I read your comment a little too late.
I reset my Jatos to the Origin version, I stored on GitHub. After that everything seemed to work well.
Then I created a new study which was not in the version I restored and copied the html files for this study in the corresponding assets folder.
After that everything crashed again with the same error message as before.
Here is the list of cookies stored in Chrome:
Do you want any specific info?
It seems as your intuition was correct. Running the same study in "incognito" mode or in another browser works fine.
Thanks for your help!
Thanks so far! Could you please send me the whole content of cookie JATOS_IDS_0?
Best,
K.
Sorry for the delay. The value for this cookie is:
batchId=385&componentId=353&componentPos=1&componentResultId=4381&creationTime=1670424344332&studyAssets=primeTargetBase&urlBasePath=/&jatosRun=RUN_STUDY&groupResultId=null&studyId=385&studyResultId=4381&workerId=1&workerType=Jatos
This bug is fixed in version v3.8.2 that is about to come out today :)