Refresh failure com.atlassian.jira.plugin.devstatus.provider.DataProviderRefreshFailure: Data Provider refresh failed with error code 400 and message – HTTP status 400

Have you seen this error in your Jira log? If so, then you are in the right place to solve it 🙂

2019-10-10 02:03:34,970 Caesium-1-4 ERROR ServiceRunner     [c.a.j.p.devstatus.provider.DefaultDevSummaryPollService] Refresh failurecom.atlassian.jira.plugin.devstatus.provider.DataProviderRefreshFailure: Data Provider refresh failed with error code 400 and message - HTTP status 400 ]        at com.atlassian.jira.plugin.devstatus.provider.DefaultCachingProviderHelper.refreshProvider(        at com.atlassian.jira.plugin.devstatus.provider.DefaultDevSummaryPollService.handlePollingSuccess(        at com.atlassian.jira.plugin.devstatus.provider.DefaultDevSummaryPollService.lambda$performPull$1(        at com.atlassian.jira.plugin.devstatus.provider.source.applink.PollResult$PollResultSuccess.fold(        at com.atlassian.jira.plugin.devstatus.provider.DefaultDevSummaryPollService.performPull(        at$ForEachOp$OfRef.accept(        at$2$1.accept(        at java.util.Iterator.forEachRemaining(        at java.util.Spliterators$IteratorSpliterator.forEachRemaining(        at        at        at$ForEachOp.evaluateSequential(        at$ForEachOp$OfRef.evaluateSequential(        at        at        at com.atlassian.jira.plugin.devstatus.provider.DevSummaryUpdateJob.runJob(        at com.atlassian.scheduler.core.JobLauncher.runJob(        at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(        at com.atlassian.scheduler.core.JobLauncher.launch(        at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.launchJob(        at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJob(        at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJobWithRecoveryGuard(        at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeQueuedJob(        at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$1.consume(        at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$1.consume(        at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeJob(        at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeNextJob(        at        at

The error is caused by that Bitbucket rejects the application links polling request from Jira. The most common possible root causes are:

  1. The request URL is too long, the return code normally is 414.
  2. The header is too large, the return code normally is 400.
  3. Some specific settings for

How to solve this issue? It really depends on how you set it up. Take a typical architecture for example: Jira -> Nginx -> Bitbucket. The troubleshooting steps should be:

  1. Check your Nginx to confirm whether it rejects the request from Jira. If yes, then tune the client_header_buffer_size and large_client_header_buffers parameters to fit your needs.
  2. If Nginx does not reject the request, then the problem should be in the upstream – Bitbucket/Tomcat. How to confirm that? Check the Nginx errror log, you should see something like: [error] 24#24: *46774189 readv() failed (104: Connection reset by peer) while reading upstream, client:, server:, request: “GET /rest/remote-link-aggregation/latest/aggregation?globalId=xxx-xxxx&….
  3. Check the server.max-http-header-size in the, update it to a larger value to match your incoming requests.
  4. If none of them solved your problem, then you probably need to tune the parameter. Check details here:


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s