Dashboards & Visualizations

Uncaught Error: Already have instance with id: in splunk

Path Finder

Hello Splunkers,

I am showing some Splunk search data into table by 'TableElement' by splunk search id bind with 'TableElement' table manager id.

       search_query = new SearchManager({
            "id": search_id,
            "status_buckets": 0,
            "cancelOnUnload": true,
            "search": search_cmd,
            "latest_time": "$latest$",
            "earliest_time": "$earliest$",
            "app": utils.getCurrentApp(),
            "auto_cancel": 90,
            "preview": true,
            "runWhenTimeIsUndefined": false,
            "timeout": "10"
        }, {tokens: true});

        var element1 = new TableElement({
            "id": "element1",
            "drilldown": "row",
            "rowNumbers": "undefined",
            "wrap": "undefined",
            "managerid": search_id,
            "el": $('#element1')
        }, {tokens: true, tokenNamespace: "submitted"}).render();

Every time search called with new data. It has to be updated in table. But, getting Uncaught Error: Already have instance with id: in splunk error. I search possible solution for this, but didn't work out.
Can anyone tell how update table very time search is executed.

0 Karma

Path Finder

Try to do this:

  • mvc.Components.revokeInstance("searchId");


Path Finder

This works well. I place it in the teardown function:
teardown: function($container, rowData) {
var that = this;
var search_idCell = _(rowData.cells).find(function (cell) {
return cell.field === 'Login Name';

0 Karma

Path Finder

the solution that I've found is to create randomically the id.
This workaround can be used for all Splunk Javascript object
For example:

var epoch=(new Date).getTime();
var Dropdown = require("splunkjs/mvc/dropdownview");
var dropdown = new Dropdown({id: "Dropdown"+epoch,
default: "",
el: $("#mydiv")
Don’t Miss Global Splunk
User Groups Week!

Free LIVE events worldwide 2/8-2/12
Connect, learn, and collect rad prizes
and swag!