# Saved object is missing Could not locate that search (id: WallDetail.uat1)

**URL:** <https://discuss.elastic.co/t/saved-object-is-missing-could-not-locate-that-search-id-walldetail-uat1/218834>\
**Category:** Kibana\
**Created:** [February 11, 2020, 5:20pm UTC](https://discuss.elastic.co/t/saved-object-is-missing-could-not-locate-that-search-id-walldetail-uat1/218834 "2020-02-11T17:20:06Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![meiyuan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/meiyuan/32/44468_2.png) [@meiyuan](https://discuss.elastic.co/u/meiyuan)\
**Post date:** [February 11, 2020, 5:20pm UTC](https://discuss.elastic.co/t/saved-object-is-missing-could-not-locate-that-search-id-walldetail-uat1/218834/1 "2020-02-11T17:20:06Z")

</div>

Hi there,  
We are using Elasticsearch and Kibana 7.0.1.  
We have a saved search Object called `WallDetail.uat1`.  
Here is how we set it up:

```auto
columns  
[
  "_source"
]

```

```auto
kibanaSavedObjectMeta.searchSourceJSON
 {
  "highlightAll": true,
  "version": true,
  "query": {
    "query": "_exists_: \"frame.msg.hostname\" AND frame.dest: bluescape_* AND NOT frame.dest: \"bluescape_metric\"",
    "language": "lucene"
  },
  "filter": [],
  "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index"
}

```

```auto
references
[
  {
    "name": "kibanaSavedObjectMeta.searchSourceJSON.index",
    "type": "index-pattern",
    "id": "8440bbf0-f1cf-11e9-80ba-2951b30c3b70"
  }
]

```

If I open this search from the Kibana Discover UI, it loads perfectly fine.

But when we put this search in another link, it reports:  
**Saved object is missing Could not locate that search (id: WallDetail.uat1)**  
(We have a similar format link **works for kibana 5.2.2**. Is this a version related query change?)  
And here is my link:

`https://kibana7-dev.common.XXXX.com/app/kibana#/discover/WallDetail.uat1?_a=(filters:!((meta:(disabled:!f,index:'openshift.uat1.*',key:frame.msg.hostname,negate:!f,value:'asset1238'),query:(match:(frame.msg.hostname:(query:'asset1238',type:phrase))))))`

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/a/9/a9dfc164de156774f2488c61c8950355ea9514bb.png)

Thank you.

---

<div class="post-metadata">

**Author:** ![flash1293](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/flash1293/32/41227_2.png) [@flash1293](https://discuss.elastic.co/u/flash1293)\
**Post date:** [February 12, 2020, 8:03am UTC](https://discuss.elastic.co/t/saved-object-is-missing-could-not-locate-that-search-id-walldetail-uat1/218834/2 "2020-02-12T08:03:01Z")

</div>

Hi @meiyuan,

If you create an URL like this, discover will automatically add a `search:` prefix to the id before looking up the document in the `.kibana` index. Could you put your saved search in a document with the id `search:WallDetaul.uat1` and try the same link?

That being said, when using the [saved objects api](https://www.elastic.co/guide/en/kibana/master/saved-objects-api.html) these things should be abstracted away from you (together with a few other convenience things).

---

<div class="post-metadata">

**Author:** ![meiyuan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/meiyuan/32/44468_2.png) [@meiyuan](https://discuss.elastic.co/u/meiyuan)\
**Post date:** [February 12, 2020, 9:04pm UTC](https://discuss.elastic.co/t/saved-object-is-missing-could-not-locate-that-search-id-walldetail-uat1/218834/3 "2020-02-12T21:04:51Z")

</div>

Hi Joe,

Thank you for the quick reply, but I'm a little lost here.

> [@flash1293](#):
>
> Could you put your saved search in a document with the id `search:WallDetaul.uat1`

Do you mean I save the search as the name: `search:WallDetail.uat1` ?  
Something like this?

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/b/4/b41f60e40c1070863525a86a67f4e0bb38943985.png)  
 ![image](https://us1.discourse-cdn.com/elastic/original/3X/d/f/df3274b658a09fe64c741bd102c0e6e4f18d7ad6.png)

> [@flash1293](#):
>
> try the same link?

I tried both  
[https://kibana7-dev.common.xxxx.com/app/kibana#/discover/WallDetail.uat1?\_a=(filters:!((meta:(disabled:!f,index:'openshift.uat1.\*',key:frame.msg.hostname,negate:!f,value:'asset1238'),query:(match:(frame.msg.hostname:(query:'asset1238',type:phrase)](https://kibana7-dev.common.xxxx.com/app/kibana#/discover/WallDetail.uat1?_a=(filters:!((meta:(disabled:!f,index:'openshift.uat1.*',key:frame.msg.hostname,negate:!f,value:'asset1238'),query:(match:(frame.msg.hostname:(query:'asset1238',type:phrase)))))))

and

[https://kibana7-dev.common.xxxx.com/app/kibana#/discover/search:WallDetail.uat1?\_a=(filters:!((meta:(disabled:!f,index:'openshift.uat1.\*',key:frame.msg.hostname,negate:!f,value:'asset1238'),query:(match:(frame.msg.hostname:(query:'asset1238',type:phrase)](https://kibana7-dev.common.xxxx.com/app/kibana#/discover/search:WallDetail.uat1?_a=(filters:!((meta:(disabled:!f,index:'openshift.uat1.*',key:frame.msg.hostname,negate:!f,value:'asset1238'),query:(match:(frame.msg.hostname:(query:'asset1238',type:phrase)))))))

Both are reporting the same error.

Then I did a

```auto
GET /.kibana_1/_search
{
    "query": {
        "match_all": {}
    }
}

```

and it gave out 177 hits.  
However, the search I saved `search:WallDetail.uat1` is not there.  
I could only find 1 "\_type" : "search"

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/e/9/e9ecc03a6ef15e86da1c43c08ce9257d1c821138.png)

But on the kibana page, it shows that I have 19 saved searches.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/4/b/4bb715fab333456477f304dd8053438c33e0b7f9.png)

Is this normal?

So, could you be more specific about how do I do what you have suggested?  
Thank you so much.

> [@flash1293](#):
>
> That being said, when using the [saved objects api](https://www.elastic.co/guide/en/kibana/master/saved-objects-api.html) these things should be abstracted away from you (together with a few other convenience things).

The use case for us is that we just want users to click on this link and then Kibana display the discover page.  
Maybe I didn't get what you are saying here, what things should be abstracted away and what convenience do users get?

Thank you for your help!

---

<div class="post-metadata">

**Author:** ![flash1293](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/flash1293/32/41227_2.png) [@flash1293](https://discuss.elastic.co/u/flash1293)\
**Post date:** [February 12, 2020, 11:43pm UTC](https://discuss.elastic.co/t/saved-object-is-missing-could-not-locate-that-search-id-walldetail-uat1/218834/4 "2020-02-12T23:43:11Z")

</div>

I think I misunderstood your use case. I thought you were talking about programmatically creating saved searches via api calls.

But based on your second post your use case is using Kibana via browser, right?

> [@meiyuan](#):
>
> We have a saved search Object called `WallDetail.uat1` .

By “called WallDetail.uat1” do you mean the name of the saved search? In older versions of Kibana the Id and the name of a saved search were identical, but that changed. Now the id is a randomly generated string and distinct from the name. In a link like [https://kibana7-dev.common.xxxx.com/app/kibana#/discover/abcd](https://kibana7-dev.common.xxxx.com/app/kibana#/discover/abcd) the abcd always has to be the id, not the name of the saved object. To get a shareable link, simply open the saved search in discover (by going to discover, clicking the Open button in the menu and selecting the saved search) and copy the url in the address bar.

---

<div class="post-metadata">

**Author:** ![meiyuan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/meiyuan/32/44468_2.png) [@meiyuan](https://discuss.elastic.co/u/meiyuan)\
**Post date:** [February 13, 2020, 5:27pm UTC](https://discuss.elastic.co/t/saved-object-is-missing-could-not-locate-that-search-id-walldetail-uat1/218834/5 "2020-02-13T17:27:25Z")

</div>

Hi Joe,

It worked! Simple like that, thanks!

Can I ask a related follow up question?

We also have a similar use case with the Dashboard object.

We have this dashboard that includes 10 visualizations.  
When I create these visualizations, Kibana asked me to pick an index pattern.  
So I created all of them on the index pattern `uat1.*`.

My question is if I need these dashboard in `uat2.*`, `uat3.*`, etc.  
Do I need to create the same set of visualizations and a new Dashboard for every index pattern?  
If so, what's the easiest way to re-product these vis on a new index pattern?

The reason I ask is because we want user to click on this link based on the index pattern:  
If vis and dashboars are based on index pattern, that means the highlighted id will be different per index pattern?

[https://kibana7-dev.common.xxx.com/app/kibana#/dashboard/](https://kibana7-dev.common.xxx.com/app/kibana#/dashboard/) **3a541cd0-4d1e-11ea-8d0f-7f1ad495eae8**?\_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:now-15m,interval:'1m',mode:quick,timezone:America%2FLos\_Angeles,to:now))&\_a=(filters:!(),options:(darkTheme:!f),panels:!((col:7,id: **d60a0c90-b5cf-11e7-8ce6-b1c9f651b1f6** ,panelIndex:1,row:6,size\_x:6,size\_y:4,type:visualization),(col:1,id:' **3c883370-b5d5-11e7-bbfd-035ce10a7f46**',panelIndex:2,row:1,size\_x:12,size\_y:1,type:visualization),(col:1,id:' **4bd2e6a0-b5cf-11e7-a33b-0f05266f5318**',panelIndex:3,row:8,size\_x:6,size\_y:6,type:visualization),(col:1,id:' **2786a740-b5df-11e7-a89a-9da1d5fab893**',panelIndex:6,row:6,size\_x:3,size\_y:2,type:visualization),(col:1,id:' **6529b270-b5e1-11e7-a89a-9da1d5fab893**',panelIndex:7,row:2,size\_x:4,size\_y:4,type:visualization),(col:4,id: **b89ad280-b5e2-11e7-8fc6-45dea0a3ed52** ,panelIndex:8,row:6,size\_x:3,size\_y:2,type:visualization),(col:10,id: **c01d58a0-b67f-11e7-bec4-7370b473aede** ,panelIndex:10,row:2,size\_x:3,size\_y:2,type:visualization),(col:5,id:' **920faf20-b680-11e7-80ce-a5b597f08adf**',panelIndex:11,row:2,size\_x:5,size\_y:4,type:visualization),(col:10,id:' **2f9cefa0-b681-11e7-bec4-7370b473aede**',panelIndex:12,row:4,size\_x:3,size\_y:2,type:visualization),(col:1,columns:!(frame.dest,frame.msg.severity-text,frame.msg.app,frame.msg.message),id:' **0b0d3c70-b682-11e7-b24f-83480f1f9730**',panelIndex:13,row:14,size\_x:12,size\_y:6,sort:!('@timestamp',desc),type:search),(col:7,id:ff1a8470-beb7-11e7-925c-e14ceb573992,panelIndex:14,row:10,size\_x:6,size\_y:4,type:visualization)),query:(query\_string:(analyze\_wildcard:!t,query:'frame.msg.hostname.keyword:Yuliya-QA-tiki-asset1006')),title:Bluescape\_Controller\_Dashboard,uiState:(P-14:(vis:(legendOpen:!f)),P-2:(spy:(mode:(fill:!f,name:!n)),vis:(params:(sort:(columnIndex:!n,direction:!n))))))

Thank you so much for you help!  
Meiyuan

---

<div class="post-metadata">

**Author:** ![flash1293](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/flash1293/32/41227_2.png) [@flash1293](https://discuss.elastic.co/u/flash1293)\
**Post date:** [February 14, 2020, 5:55am UTC](https://discuss.elastic.co/t/saved-object-is-missing-could-not-locate-that-search-id-walldetail-uat1/218834/6 "2020-02-14T05:55:39Z")

</div>

Unfortunately there is no way to automate this at the moment. This is the relevant feature request: [https://github.com/elastic/kibana/issues/16917](https://github.com/elastic/kibana/issues/16917)

You either have to create the dashboards and visualizations manually or write a script to automate it via the saved objects api (e.g. in python).

A workaround not applicable in all situations is to create one index pattern covering all of the data in your various similar looking index patterns, putting a field in your data containing a differentiation between the various environments and create a single dashboard with an input control visualization on top to switch the filter between the documents of each index .

---

<div class="post-metadata">

**Author:** ![meiyuan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/meiyuan/32/44468_2.png) [@meiyuan](https://discuss.elastic.co/u/meiyuan)\
**Post date:** [February 14, 2020, 4:36pm UTC](https://discuss.elastic.co/t/saved-object-is-missing-could-not-locate-that-search-id-walldetail-uat1/218834/7 "2020-02-14T16:36:09Z")

</div>

> [@flash1293](#):
>
> Unfortunately there is no way to automate this at the moment. This is the relevant feature request: [Dashboard level index patterns · Issue #16917 · elastic/kibana · GitHub](https://github.com/elastic/kibana/issues/16917)
> 
> You either have to create the dashboards and visualizations manually or write a script to automate it via the saved objects api (e.g. in python).
> 
> A workaround not applicable in all situations is to create one index pattern covering all of the data in your various similar looking index patterns, putting a field in your data containing a differentiation between the various environments and create a single dashboard with an input control visualization on top to switch the filter between the documents of each index .

Thank you, understood!

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [March 13, 2020, 4:36pm UTC](https://discuss.elastic.co/t/saved-object-is-missing-could-not-locate-that-search-id-walldetail-uat1/218834/8 "2020-03-13T16:36:10Z")

</div>

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