Kibana: Reporting error Request-URI Too Long

Created on 22 Dec 2018  路  15Comments  路  Source: elastic/kibana

Kibana version:
6.5.2 to 6.5.4

Elasticsearch version:
6.5.2 to 6.5.4

Server OS version:
Elastic cloud
Browser version:

Browser OS version:

Original install method (e.g. download page, yum, from source, etc.):

Describe the bug:
Generate pdf report in Kibana results in Reporting error Request-URI Too Long for medium size and big dashboars (message: Bad request for Kibana installed on own hosted server using yum)
Small reports work correctly

Steps to reproduce:

  1. Open dashboard with several visualisation in it (~10 is enough)
  2. Choose shar/PDF report
  3. Click generate report

Expected behavior:
report processing startes
Screenshots (if relevant):

Errors in browser console (if relevant):

Provide logs and/or server output (if relevant):

Any additional context:
please see https://discuss.elastic.co/t/reporting-error-request-uri-too-long-reporting-error-bad-request/160050

Reporting Reporting Services

All 15 comments

Hello,

I have just generated a report with 11 visualizations on my dashboard. Which browser and operating system are you using? Have you tried in different browsers?

Cheers

Pinging @elastic/kibana-app

I checked in Chrome, Opera and IE.

Here is example on request that works fine (size 2327 bytes):
https://***/api/reporting/generate/printablePdf?jobParams=(browserTimezone:Europe%2FWarsaw,layout:(dimensions:(height:1840.0001220703125,width:1934.444580078125),id:preserve_layout),objectType:dashboard,relativeUrls:!(%27%2Fapp%2Fkibana%23%2Fdashboard%2Fe1f93cd0-d69c-11e8-9597-f95ad9a0a1ae%3F_g%3D(refreshInterval:(pause:!!t,value:0),time:(from:now-24h,mode:quick,to:now))%26_a%3D(description:!%27!%27,filters:!!((!%27$state!%27:(store:appState),meta:(alias:!!n,controlledBy:!%271540282051768!%27,disabled:!!f,index:!%277446b230-d62e-11e8-9597-f95ad9a0a1ae!%27,key:name,negate:!!f,params:(query:!%27NL_Schraard%2BNFO1!%27,type:phrase),type:phrase,value:!%27NL_Schraard%2BNFO1!%27),query:(match:(name:(query:!%27NL_Schraard%2BNFO1!%27,type:phrase))))),fullScreenMode:!!f,options:(darkTheme:!!f,hidePanelTitles:!!t,useMargins:!!f),panels:!!((embeddableConfig:(mapCenter:!!(48.748945343432936,20.566406250000004),mapZoom:4),gridData:(h:25,i:!%271!%27,w:18,x:30,y:0),id:cad36ee0-d697-11e8-9597-f95ad9a0a1ae,panelIndex:!%271!%27,type:visualization,version:!%276.4.2!%27),(embeddableConfig:(),gridData:(h:25,i:!%272!%27,w:48,x:0,y:25),id:!%274d0f8310-d69a-11e8-9597-f95ad9a0a1ae!%27,panelIndex:!%272!%27,type:visualization,version:!%276.4.2!%27),(embeddableConfig:(),gridData:(h:7,i:!%273!%27,w:15,x:0,y:10),id:e0d1beb0-d69a-11e8-9597-f95ad9a0a1ae,panelIndex:!%273!%27,type:visualization,version:!%276.4.2!%27),(embeddableConfig:(),gridData:(h:10,i:!%274!%27,w:15,x:0,y:0),id:a8b72fe0-d69c-11e8-9597-f95ad9a0a1ae,panelIndex:!%274!%27,type:visualization,version:!%276.4.2!%27),(embeddableConfig:(),gridData:(h:15,i:!%275!%27,w:15,x:0,y:50),id:!%274e8994b0-d7b2-11e8-9597-f95ad9a0a1ae!%27,panelIndex:!%275!%27,type:visualization,version:!%276.4.2!%27),(embeddableConfig:(),gridData:(h:8,i:!%276!%27,w:15,x:0,y:17),id:bacff9b0-d7b3-11e8-9597-f95ad9a0a1ae,panelIndex:!%276!%27,type:visualization,version:!%276.4.2!%27),(embeddableConfig:(),gridData:(h:25,i:!%277!%27,w:15,x:15,y:0),id:!%2757e68590-ed97-11e8-9092-6b3b764cc4cb!%27,panelIndex:!%277!%27,type:visualization,version:!%276.5.1!%27),(embeddableConfig:(),gridData:(h:42,i:!%278!%27,w:33,x:15,y:50),id:!%270bc1f250-ed95-11e8-9092-6b3b764cc4cb!%27,panelIndex:!%278!%27,type:search,version:!%276.5.1!%27)),query:(language:lucene,query:!%27!%27),timeRestore:!!t,title:!%27NFO%2BDashboard!%27,viewMode:view)%27),title:%27NFO%20Dashboard%27)

and here is one of those failing (size 10200 bytes):
http://**/api/reporting/generate/printablePdf?jobParams=(browserTimezone:Europe%2FWarsaw,layout:(dimensions:(height:8920,width:1723),id:preserve_layout),objectType:dashboard,relativeUrls:!(%27%2Fapp%2Fkibana%23%2Fdashboard%2F2e1540e0-89b9-11e8-80a5-eb54fe817963%3F_g%3D(refreshInterval:(pause:!!t,value:0),time:(from:now%252Fd-7d,mode:quick,to:now%252Fd-1d))%26_a%3D(description:!%27!%27,filters:!!((!%27$state!%27:(store:appState),meta:(alias:!!n,disabled:!!f,index:fd1189e0-89ae-11e8-80a5-eb54fe817963,key:name,negate:!!t,params:!!(UA_Promin_FAN,UA_Promin,UA_Promin_CP3,UA_Promin_CP2,UA_Promin_CP1),type:phrases,value:!%27UA_Promin_FAN,%2BUA_Promin,%2BUA_Promin_CP3,%2BUA_Promin_CP2,%2BUA_Promin_CP1!%27),query:(bool:(minimum_should_match:1,should:!!((match_phrase:(name:UA_Promin_FAN)),(match_phrase:(name:UA_Promin)),(match_phrase:(name:UA_Promin_CP3)),(match_phrase:(name:UA_Promin_CP2)),(match_phrase:(name:UA_Promin_CP1))))))),fullScreenMode:!!f,options:(darkTheme:!!f,hidePanelTitles:!!t,useMargins:!!f),panels:!!((embeddableConfig:(mapCenter:!!(26.902476886279832,-77.69531250000001),mapZoom:4),gridData:(h:41,i:!%271!%27,w:15,x:1,y:26),id:!%277d107f50-89b1-11e8-80a5-eb54fe817963!%27,panelIndex:!%271!%27,type:visualization,version:!%276.3.1!%27),(embeddableConfig:(),gridData:(h:26,i:!%272!%27,w:14,x:17,y:0),id:e8c12970-89b1-11e8-80a5-eb54fe817963,panelIndex:!%272!%27,type:visualization,version:!%276.3.1!%27),(embeddableConfig:(),gridData:(h:19,i:!%273!%27,w:24,x:0,y:179),id:!%276a2b2090-89b4-11e8-80a5-eb54fe817963!%27,panelIndex:!%273!%27,type:visualization,version:!%276.3.1!%27),(embeddableConfig:(),gridData:(h:20,i:!%274!%27,w:48,x:0,y:198),id:!%275c5bdc10-89b5-11e8-80a5-eb54fe817963!%27,panelIndex:!%274!%27,type:visualization,version:!%276.3.1!%27),(embeddableConfig:(),gridData:(h:19,i:!%275!%27,w:24,x:24,y:179),id:adda8ce0-89b4-11e8-80a5-eb54fe817963,panelIndex:!%275!%27,type:visualization,version:!%276.3.1!%27),(embeddableConfig:(spy:!!n,vis:(colors:(%2523documents:%25231F78C1))),gridData:(h:20,i:!%276!%27,w:24,x:0,y:133),id:f2e7d0f0-89b3-11e8-80a5-eb54fe817963,panelIndex:!%276!%27,type:visualization,version:!%276.3.1!%27),(embeddableConfig:(),gridData:(h:21,i:!%277!%27,w:48,x:0,y:153),id:!%278a448de0-89b3-11e8-80a5-eb54fe817963!%27,panelIndex:!%277!%27,type:visualization,version:!%276.3.1!%27),(embeddableConfig:(),gridData:(h:20,i:!%278!%27,w:24,x:24,y:133),id:!%27280c1840-89b4-11e8-80a5-eb54fe817963!%27,panelIndex:!%278!%27,type:visualization,version:!%276.3.1!%27),(embeddableConfig:(),gridData:(h:13,i:!%279!%27,w:17,x:0,y:0),id:f8c8ff30-89b8-11e8-80a5-eb54fe817963,panelIndex:!%279!%27,type:visualization,version:!%276.3.1!%27),(embeddableConfig:(),gridData:(h:13,i:!%2710!%27,w:17,x:0,y:13),id:!%272df26d40-89d2-11e8-80a5-eb54fe817963!%27,panelIndex:!%2710!%27,type:visualization,version:!%276.3.1!%27),(embeddableConfig:(),gridData:(h:5,i:!%2712!%27,w:48,x:0,y:128),id:!%278d845720-89d5-11e8-80a5-eb54fe817963!%27,panelIndex:!%2712!%27,type:visualization,version:!%276.3.1!%27),(embeddableConfig:(),gridData:(h:5,i:!%2713!%27,w:48,x:0,y:174),id:!%2780fffea0-89d5-11e8-80a5-eb54fe817963!%27,panelIndex:!%2713!%27,type:visualization,version:!%276.3.1!%27),(embeddableConfig:(),gridData:(h:5,i:!%2716!%27,w:48,x:0,y:218),id:b26a6280-89e6-11e8-80a5-eb54fe817963,panelIndex:!%2716!%27,type:visualization,version:!%276.3.1!%27),(embeddableConfig:(),gridData:(h:5,i:!%2719!%27,w:48,x:0,y:67),id:!%270b906d80-89e9-11e8-80a5-eb54fe817963!%27,panelIndex:!%2719!%27,type:visualization,version:!%276.3.1!%27),(embeddableConfig:(),gridData:(h:6,i:!%2722!%27,w:48,x:0,y:249),id:fd359e10-94ae-11e8-8a7f-a9aab35365f0,panelIndex:!%2722!%27,type:visualization,version:!%276.3.2!%27),(embeddableConfig:(vis:(colors:(!%27Ambient%2B%255B!%27:%25233F2B5B,!%27Ambient%2B%255B%25C2%25B0C%255D!%27:%2523052B51,!%27High%2BPressure%2B1%2B%255BBar%255D!%27:%2523BF1B00,!%27High%2BPressure%2B2%2B%255BBar%255D!%27:%2523F29191,!%27Lower%2BHigh%2BPressure%2B1%2B%255BBar%255D!%27:%2523BADFF4,!%27Max%2BHP%2B%2B%255BBar%255D!%27:%2523890F02,!%27Upper%2BHigh%2BPressure%2B1%2B%255BBar%255D!%27:%2523E24D42,ambient:%2523EF843C))),gridData:(h:24,i:!%2723!%27,w:19,x:0,y:255),id:bf2ea0f0-94ac-11e8-8a7f-a9aab35365f0,panelIndex:!%2723!%27,type:visualization,version:!%276.3.2!%27),(embeddableConfig:(),gridData:(h:24,i:!%2724!%27,w:19,x:29,y:255),id:!%2736eb1830-94ad-11e8-8a7f-a9aab35365f0!%27,panelIndex:!%2724!%27,type:visualization,version:!%276.3.2!%27),(embeddableConfig:(),gridData:(h:19,i:!%2725!%27,w:24,x:0,y:295),id:dab0d2e0-94ab-11e8-8a7f-a9aab35365f0,panelIndex:!%2725!%27,type:visualization,version:!%276.3.2!%27),(embeddableConfig:(),gridData:(h:19,i:!%2727!%27,w:24,x:24,y:295),id:!%2791ae5ba0-94b3-11e8-8a7f-a9aab35365f0!%27,panelIndex:!%2727!%27,type:visualization,version:!%276.3.2!%27),(embeddableConfig:(),gridData:(h:18,i:!%2728!%27,w:48,x:0,y:314),id:!%2746494b00-94b5-11e8-8a7f-a9aab35365f0!%27,panelIndex:!%2728!%27,type:visualization,version:!%276.3.2!%27),(embeddableConfig:(),gridData:(h:16,i:!%2731!%27,w:48,x:0,y:279),id:a4f85190-aa46-11e8-be56-79ef24f2ca6f,panelIndex:!%2731!%27,type:visualization,version:!%276.3.2!%27),(embeddableConfig:(),gridData:(h:5,i:!%2732!%27,w:48,x:0,y:350),id:!%2711c73c00-9ae8-11e8-8a7f-a9aab35365f0!%27,panelIndex:!%2732!%27,type:visualization,version:!%276.4.0!%27),(embeddableConfig:(),gridData:(h:18,i:!%2741!%27,w:48,x:0,y:377),id:c00cba50-ba5b-11e8-bad3-59405474b6b7,panelIndex:!%2741!%27,type:visualization,version:!%276.4.0!%27),(embeddableConfig:(),gridData:(h:17,i:!%2742!%27,w:48,x:0,y:395),id:!%27376c92a0-ba5c-11e8-bad3-59405474b6b7!%27,panelIndex:!%2742!%27,type:visualization,version:!%276.4.0!%27),(embeddableConfig:(),gridData:(h:18,i:!%2743!%27,w:48,x:0,y:332),id:!%27637cf8d0-ba98-11e8-bad3-59405474b6b7!%27,panelIndex:!%2743!%27,type:visualization,version:!%276.4.0!%27),(embeddableConfig:(vis:(colors:(BE_Gotta:%2523629E51,DE_Wipperdorf:%2523EAB839,DK_Bybjerggaard:%2523447EBC,DO_Agampta:%2523EF843C,EE_Koigi:%2523BF1B00,ES_SanJaume:%25230A50A1,ES_Tecnozoo:%2523E5A8E2,LV_Gierkens:%2523BA43A9,NL_Kets:%2523B7DBAB,NL_Savelkouls:%2523967302,NL_Stegeman:%252370DBED,NL_Sterkenburgh:%2523FCE2DE,NZ_Barker:%2523806EB7,NZ_Willowford:%252358140C,UA_Promin:%25239AC48A,UA_Promin_CP1:%2523F4D598,UA_Promin_CP2:%252370DBED,UA_Promin_CP3:%2523F9BA8F,UA_Promin_FAN:%2523EA6460))),gridData:(h:26,i:!%2744!%27,w:24,x:24,y:223),id:!%2757ccb1d0-ba9b-11e8-bad3-59405474b6b7!%27,panelIndex:!%2744!%27,type:visualization,version:!%276.4.0!%27),(embeddableConfig:(),gridData:(h:16,i:!%2745!%27,w:24,x:0,y:412),id:ceab56c0-ba9c-11e8-bad3-59405474b6b7,panelIndex:!%2745!%27,type:visualization,version:!%276.4.0!%27),(embeddableConfig:(),gridData:(h:16,i:!%2746!%27,w:24,x:24,y:412),id:!%2716bd32d0-ba9d-11e8-bad3-59405474b6b7!%27,panelIndex:!%2746!%27,type:visualization,version:!%276.4.0!%27),(embeddableConfig:(),gridData:(h:20,i:!%2748!%27,w:24,x:0,y:72),id:a04d2af0-bdcc-11e8-a9bf-b559fabb5592,panelIndex:!%2748!%27,type:visualization,version:!%276.4.0!%27),(embeddableConfig:(),gridData:(h:26,i:!%2749!%27,w:17,x:31,y:0),id:b5028ff0-bde3-11e8-a9bf-b559fabb5592,panelIndex:!%2749!%27,type:visualization,version:!%276.4.0!%27),(embeddableConfig:(vis:(params:(sort:(columnIndex:2,direction:desc)))),gridData:(h:20,i:!%2750!%27,w:24,x:24,y:72),id:!%27346578c0-be70-11e8-a9bf-b559fabb5592!%27,panelIndex:!%2750!%27,type:visualization,version:!%276.4.0!%27),(embeddableConfig:(),gridData:(h:24,i:!%2751!%27,w:10,x:19,y:255),id:!%27139a1c90-be9d-11e8-a9bf-b559fabb5592!%27,panelIndex:!%2751!%27,type:visualization,version:!%276.4.0!%27),(embeddableConfig:(table:(sort:(column:_default_,order:asc))),gridData:(h:36,i:!%2752!%27,w:48,x:0,y:92),id:!%2722ea7330-c6e9-11e8-b550-65ff08e17b92!%27,panelIndex:!%2752!%27,type:visualization,version:!%276.4.2!%27),(embeddableConfig:(mapCenter:!!(49.095452162534826,10.898437500000002),mapZoom:4),gridData:(h:41,i:!%2753!%27,w:17,x:16,y:26),id:!%277d107f50-89b1-11e8-80a5-eb54fe817963!%27,panelIndex:!%2753!%27,type:visualization,version:!%276.4.2!%27),(embeddableConfig:(mapCenter:!!(-40.54720023441048,173.45214843750003),mapZoom:6),gridData:(h:41,i:!%2754!%27,w:15,x:33,y:26),id:!%277d107f50-89b1-11e8-80a5-eb54fe817963!%27,panelIndex:!%2754!%27,type:visualization,version:!%276.4.2!%27),(embeddableConfig:(),gridData:(h:26,i:!%2755!%27,w:24,x:0,y:223),id:!%274b888060-ed00-11e8-9092-6b3b764cc4cb!%27,panelIndex:!%2755!%27,type:visualization,version:!%276.5.0!%27),(embeddableConfig:(vis:(colors:(!%27Ambient%2B%255B!%27:%25233F2B5B,!%27Ambient%2B%255B%25C2%25B0C%255D!%27:%252358140C,!%27High%2BPressure%2B1%2B%255BBar%255D!%27:%2523BF1B00,!%27High%2BPressure%2B2%2B%255BBar%255D!%27:%2523F29191,!%27Low%2BPressure%2B1%2B%255BBar%255D!%27:%25230A50A1,!%27Lower%2BHigh%2BPressure%2B1%2B%255BBar%255D!%27:%2523BADFF4,!%27Min%2BLP1%2B%255BBar%255D!%27:%25236ED0E0,!%27Upper%2BHigh%2BPressure%2B1%2B%255BBar%255D!%27:%2523E24D42,ambient:%2523EF843C))),gridData:(h:22,i:!%2756!%27,w:23,x:1,y:355),id:!%27821f14c0-ba5d-11e8-bad3-59405474b6b7!%27,panelIndex:!%2756!%27,type:visualization,version:!%276.5.3!%27),(embeddableConfig:(vis:(colors:(!%27Ambient%2B%255B%25C2%25B0C%255D!%27:%252358140C,!%27High%2BPressure%2B1%2B%255BBar%255D!%27:%2523890F02,!%27High%2BPressure%2B2%2B%255BBar%255D!%27:%2523BF1B00,!%27Low%2BPressure%2B2%2B%255BBar%255D!%27:%25230A50A1,!%27Lower%2BHigh%2BPressure%2B1%2B%255BBar%255D!%27:%2523BADFF4,!%27Min%2BLP2%2B%255BBar%255D!%27:%25236ED0E0,!%27Upper%2BHigh%2BPressure%2B1%2B%255BBar%255D!%27:%2523E24D42))),gridData:(h:22,i:!%2757!%27,w:24,x:24,y:355),id:!%279f7b6020-02e5-11e9-8a22-75e82b648e0e!%27,panelIndex:!%2757!%27,type:visualization,version:!%276.5.3!%27),(embeddableConfig:(vis:(colors:(!%27Low%2BPressure%2B1%2B%255BBar%255D!%27:%252364B0C8))),gridData:(h:18,i:!%2758!%27,w:24,x:0,y:428),id:!%271609f060-0383-11e9-8a22-75e82b648e0e!%27,panelIndex:!%2758!%27,type:visualization,version:!%276.5.3!%27),(embeddableConfig:(),gridData:(h:18,i:!%2759!%27,w:24,x:24,y:428),id:e4fd5ec0-0383-11e9-8a22-75e82b648e0e,panelIndex:!%2759!%27,type:visualization,version:!%276.5.3!%27)),query:(language:kuery,query:!%27!%27),timeRestore:!!t,title:!%27Chiller%2Bdashboard!%27,viewMode:view)%27),title:%27Chiller%20dashboard%27)

I created a support case (#00239155) for Elastic on v6.3 on June 5th, 2018 regarding this.

My problem description:
When creating a watcher to generate PDF report from dashboard and send PDF by email this error occurs for dashboards containing a lot af visualizations:

"reason": "Watch[_inlined_] reporting[sample_report.pdf] Error response when trying to trigger reporting generation host[xxx], port[xxx] method[POST], path[/api/reporting/generate/printablePdf], status[414]"

Throwing error code 414 seems to suggest that generation url is too long to handle.

PDF reports for dashboard resulting in this watcher error can be manually generated from reporting menu, but I need also to include these in automatic email distribution.

I have successfully generated PDF report sent by email for a dashboards with a generation url having a lenght of 5320 characters, but not for a length of 6800.

Questions:

  • Do you know of the maximum length of the generation url?
  • What can I do to send out PDF report by email for dashboards with a very long generation url that triggers above-mention error? Any possibility of a tiny url?

Support answer:
It seems that the exception originates from the code here:
https://github.com/elastic/elasticsearch/blob/6.3/x-pack/plugin/watcher/src/main/java/org/elasticsearch/xpack/watcher/notification/email/attachment/ReportingAttachmentParser.java
and the request is handled by the java http client. Usually the HTTP protocol does not place any a prior limit on the length of a URI so servers must be able to handle the URI.
Our Kibana team has been facing this issue and others regarding the Generate URL lengthy size and opened this enhancement ticket https://github.com/elastic/kibana/issues/14455 which will help trim the url down, unfortunately there is no timeline on when this will be implemented/released.

Any progress on this issue? We are facing the same problem, i cannot create reports even using the web interface. Always Request-URI too long.

I am currently facing this problem on Kibana 6.5.4 .
Any update ?

6.7 has the same problem.

CSV reports from discovery always fail, even with very small searched (less than 300 docs).

Hello @Sjaak01 , this problem is not related to the amount of data to be processed, but on the length of the URL (probably linked to the number of filters applied on the data).

Why Kibana is not using the short url "goto/94114215c4519bb135aed1b824e9dba7" to generate PDF ?

Hi, this limitation seems mostly around how many panels can be on a dashboard used for Reporting.

The Reporting POST URL contains data about Kibana's global state (such as query bar, filters, time pickers, etc) as well as the data about the dashboard saved object.

If it was only the short URL used to generate Reports, we would lack the global state information.

A data payload that has a combination of different sources seems like the best option: we can read all the dashboard saved object data from the Saved Object service. Unfortunately, that's not how Reporting works today.

For now, the workaround is to create smaller dashboard PDFs. As @symstopje commented, looks like a URL for a dashboard with 8 panels works, but the same for a dashboard with 40 panels doesn't work.

This issue is still present in 7.2.

I don't consider creating smaller dashboards a valid workaround. In many cases that means you might miss out on important data and it is additional work. Taking a screenshot would be quicker.

IMHO large amounts of visualizations should have been a consideration during development.

@tsullivan
If it was only the short URL used to generate Reports, we would lack the global state information.

I don't know if it is relevant but :
Since we can share dashboards with long and short urls, why can't we do the same with pdf dashboard generations? what kind of "we would lack the global state information" are we talking about ?

or Why not use the short url to redirect to the long url for pdf generation locally?

@GuillaumeDuf

Hi, when I wrote If it was only the short URL used to generate Reports, we would lack the global state information., it looks like I had a crossed wire in my brain. It happens -- sorry!!!

We would have the global information in a short URL. It takes a snapshot of the browser state the same way that the Reporting POST URL does. Short URL and Reporting Generation URL seem similar in responsibility, but they're completely separate in functionality. With Security enabled, Kibana users are only able to create a short URL if they have write permission to .kibana, I believe. Whereas a Kibana user only needs the reporting_user privilege to generate a report, as well as permission to read the underlying data of course.

Making short URLs and making reports don't really go hand-in-hand with the other in today's Kibana code. But, it's definitely something that needs to be pursued. I'm reading out to @elastic/kibana-app to see how we can align our goals.

Pinging @elastic/kibana-reporting-services (Team:Reporting Services)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

passkey1510 picture passkey1510  路  96Comments

Vineeth-Mohan picture Vineeth-Mohan  路  149Comments

hvisage picture hvisage  路  170Comments

AlexIoannides picture AlexIoannides  路  138Comments

doubret picture doubret  路  105Comments