savedVisualization / embeddable in canvas broken after upgrading to version 8.9.2 due to saved Objects Id

Hi folks,

We are looking to upgrade elk stack from 7.17.2 to 8.9.2. One of the first observations we made in Canvas is that savedVisualization is broken. We have Canvas dashboards having upto 9 kibana visualisation imported.

We reimported all the visualisation back into canvas which now became embeddable. The real problem started when we tried to move this dashboard across spaces (We have 10 spaces in prod).

The problem is that SavedObjects Id is not preserved when copying across spaces. I read the article below and understood its the new thing in version 8

We have several canvas dashboard which have saved visualisations embedded in them. The config used by embeddable is itself a base 64 encoded string. But this still means we have to do a lot of manual work when moving across spaces.

There seems to be no way of copying these across other spaces without breaking the embeddable object.

Is there an easy way of handling this ?

Thanks

Hello,

I had Kibana 8.11 which was upgraded from 7.17.15 with a canvas workpad. In 8.11, I used add library and added a visualization and then copied this canvas workpad into a different place. And everything looks good. Based on this couple of questions for you:

  1. This means you used add library to add visualizations back into Canvas?
  1. What does this mean? Were there errors in canvas workpads on the visualizations in 8.9.2? If so, do you have some example errors for us?

I will try to hunt around for any PRs or previous bugs on this issue.

Thanks,
Bhavya

Hi @bhavyarm ,

To answer your questions:

  1. Yes, we used Add from library to import visualisations. Then we copied this canvas and the underlying visualisation into another space. After this the canvas dashboard is showing this:
    image

The reason being the visualisation now has a different Id and hence the link is broken.

  1. After upgrading from 7.17.2 to 8.9.2 we found the below errors in previously working canvas workpads:

image

When inspecting the panel we found this :

kibana
| selectFilter
| savedVisualization id="savedVisualization.id" timerange={timerange from="now-10y" to="now"}
| render 

the saved object's UUID was replaced by a string called savedVisualization.id

Thanks

Thanks for the details. cc @nickpeihl / @Catherine_Liu help please?

Cheers,
Bhavya

Unfortunately, saved object IDs always need to be unique across the entire Kibana cluster. This is why importing a visualization generates a new ID. So there is nothing we can do at this time to retain the same ID in each Space.

It might be possible in the future to share a visualization to multiple Spaces. In that case, the visualization ID would remain the same for every Space. We have an open feature request to enable sharing here: [Meta] Share analytics across spaces · Issue #167901 · elastic/kibana · GitHub. Unfortunately, we do not know when this feature will become available.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.