intuit/benten

Exception while trying to build a jenkins job

satyanktiwari opened this issue · 4 comments

  • integrated my jenkins with the bot

  • when I use the key words "Search for a Jenkins Job test", it returns the correct list of jobs with the prefix that I specified - Expected

  • Now when I enter the key words "Build Jenkins Job test_mavenBuild" (build returned during earlier step), I'm getting below exception:

org.apache.http.client.HttpResponseException: No valid crumb was included in the request
at com.offbytwo.jenkins.client.validator.HttpResponseValidator.validateResponse(HttpResponseValidator.java:11)
at com.offbytwo.jenkins.client.JenkinsHttpClient.post(JenkinsHttpClient.java:239)
at com.offbytwo.jenkins.model.Job.build(Job.java:74)
at com.intuit.benten.BentenJenkinsClient.build(BentenJenkinsClient.java:98)
at com.intuit.benten.jenkins.actionhandlers.JenkinsBuildJobByJobNameActionHandler.handle(JenkinsBuildJobByJobNameActionHandler.java:26)
at com.intuit.benten.channel.slack.SlackChannel.lambda$null$2(SlackChannel.java:241)
at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656)
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:632)
at java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:443)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
17:12:41.667 [ForkJoinPool.commonPool-worker-0] ERROR c.i.b.channel.slack.SlackChannel - com.intuit.benten.jenkins.exceptions.BentenJenkinsException: No val
id crumb was included in the request
java.util.concurrent.CompletionException: com.intuit.benten.jenkins.exceptions.BentenJenkinsException: No valid crumb was included in the request
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273)
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280)
at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:659)
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:632)
at java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:443)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: com.intuit.benten.jenkins.exceptions.BentenJenkinsException: No valid crumb was included in the request
at com.intuit.benten.BentenJenkinsClient.build(BentenJenkinsClient.java:121)
at com.intuit.benten.jenkins.actionhandlers.JenkinsBuildJobByJobNameActionHandler.handle(JenkinsBuildJobByJobNameActionHandler.java:26)
at com.intuit.benten.channel.slack.SlackChannel.lambda$null$2(SlackChannel.java:241)
at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656)
... 6 common frames omitted
org.apache.http.client.HttpResponseException: No valid crumb was included in the request
at com.offbytwo.jenkins.client.validator.HttpResponseValidator.validateResponse(HttpResponseValidator.java:11)
at com.offbytwo.jenkins.client.JenkinsHttpClient.post(JenkinsHttpClient.java:239)
at com.offbytwo.jenkins.model.Job.build(Job.java:74)
at com.intuit.benten.BentenJenkinsClient.build(BentenJenkinsClient.java:98)
at com.intuit.benten.jenkins.actionhandlers.JenkinsBuildJobByJobNameActionHandler.handle(JenkinsBuildJobByJobNameActionHandler.java:26)
at com.intuit.benten.channel.slack.SlackChannel.lambda$null$2(SlackChannel.java:241)
at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656)
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:632)
at java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:443)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
17:14:10.836 [ForkJoinPool.commonPool-worker-2] ERROR c.i.b.channel.slack.SlackChannel - com.intuit.benten.jenkins.exceptions.BentenJenkinsException: No val
id crumb was included in the request
java.util.concurrent.CompletionException: com.intuit.benten.jenkins.exceptions.BentenJenkinsException: No valid crumb was included in the request
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273)
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280)
at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:659)
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:632)
at java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:443)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: com.intuit.benten.jenkins.exceptions.BentenJenkinsException: No valid crumb was included in the request
at com.intuit.benten.BentenJenkinsClient.build(BentenJenkinsClient.java:121)
at com.intuit.benten.jenkins.actionhandlers.JenkinsBuildJobByJobNameActionHandler.handle(JenkinsBuildJobByJobNameActionHandler.java:26)
at com.intuit.benten.channel.slack.SlackChannel.lambda$null$2(SlackChannel.java:241)
at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656)
... 6 common frames omitted

I am assuming you have setup a local jenkins instance and trying things, because its local you will see this issue. Its because of CORS. Please follow the below steps to fix the problem:

  1. Login to jenkins as an admin
  2. Navigate to Manage Jenkins --> Configure Global Security
  3. Uncheck "Prevent Cross Site Request Forgery exploits" and Save.
  4. You should be able to run builds now.

Here's the jenkins api issue for reference: jenkinsci/java-client-api#316

Please Note: For now you can only build jobs that do not have any parameters. If you have to build a job which has parameter, then you might have to wait for that feature to be added.

If required, you can also ping us on Slack for any help.

Closed by mistake. Please try and let us know.

Closing this issue. Will reopen as needed.

Thanks Solution worked. Ran job for karate using Benten from slack.