Report from Kibana connected to Elastic Cloud - Failed to decrypt report job data

Hi All,

I noticed the following error on a custom Kibana which is connected to Elastic Cloud elasticsearch instance. Reverse proxy exposes port 80 and then Cloudflare provides https connection.
Therefore, I have set

## Reporting

xpack.reporting.enabled: true
xpack.reporting.encryptionKey: "32 characters"
xpack.reporting.kibanaServer.hostname: "0.0.0.0"
xpack.reporting.kibanaServer.port: 80
xpack.reporting.kibanaServer.protocol: "http"

I often (7 out of 8 times) get the following error:

The reporting job failed
Error: Failed to decrypt report job data. Please ensure that xpack.reporting.encryptionKey is set and re-generate this report. Error: Unsupported state or unable to authenticate data

and the sometimes PDF report succeeds...

In Kibana, the following error is also logged on failures:
"tags":["warning","plugins","reporting","esqueue","queue-worker"],"pid":58498,"message":"ko12345h194y39e9ab7bnm8a - _claimPendingJobs encountered a version conflict on updating pending job ko12yvo4194y39e9ab2a2rav: Error: [version_conflict_engine_exception] [ko12yvo4194y39e9ab2a2rav]: version conflict, required seqNo [63], primary term [1]. current document has seqNo [65] and primary term [1],

Any ideas?

If this error is intermittent then you might be running into a problem in which the amount of data used to generate the report is too large. Here's a similar issue in which the user solved the problem by using a smaller time interval. Can you see if this works, to confirm that this is the problem?

Thanks
Rashmi

Thank you for your prompt answer.
I do not think that the timeout is the problem as I have already set:

elasticsearch.requestTimeout: 120000
elasticsearch.shardTimeout: 120000

I believe that there is a conflict with the reverse proxy or the encryptionKey which is different from the one Elastic Cloud provides with its own Kibana ...

The error from Kibana is not very helpful and I do not understand why I have 2 successful tries and then I get failures with the same error ...

@tsullivan any advice here?

Thanks
Rashmi

Kibana instances work in a pool to run reports, so that a single instance of Kibana doesn't end up being responsible for serving interactive users and also executing reports async. Because jobs can be claimed by other instances, the encryption key must be set to the same value for all the Kibana instances that are connected to the cluster.

I recommend either setting the encryption key for the cloud instance to be the same and allow that instance to run report jobs, or disable that instance from being able to claim jobs by setting xpack.reporting.queue.pollEnabled: false .

Thank you @tsullivan for your suggestion, I had just changed the setting to Elastic Cloud's configuration (just the xpack.reporting.encryptionKey) and instantly noticed that I have no fails from my self-hosted Kibana. I think that I will follow your advice and I will set xpack.reporting.queue.pollEnabled to false instead.

Thank you again!