How to define "Hosted on::Hosts" relationship between cmdb_ci_lb_pool and u_cmdb_ci_kemp_lb in Disco

Pratiksha
Mega Sage
Mega Sage

m working on integrating Load Balancer Pools (cmdb_ci_lb_pool) into the CMDB using the Identification and Reconciliation Engine (IRE). I’m facing a MISSING_DEPENDENCY issue even though the load_balancer reference field is populated correctly.

 

{
"items": [
{
"className": "cmdb_ci_lb_pool",
"values": {
"load_balancer": "6e5bd3aa3115e254137ea00e7e18f4b4",
"discovery_source": "ServiceNow",
"install_status": "1",
"load_balancing_method": "round-robin",
"name": "0",
"sys_class_name": "cmdb_ci_lb_pool"
},
"sys_object_source_info": {
"source_name": "ServiceNow",
"source_native_key": "15.23"
},
"internal_id": "615fc8be289d22943eeb3dd06e0c9311",
"sys_ire_info": {
"ire_received_time": "2025-05-07 14:18:46"
},
"reason": "MISSING_DEPENDENCY"
}
]
}

The CI class u_cmdb_ci_kemp_lb (referenced in load_balancer) exists, and the sys_id (6e5bd3aa3115e254137ea00e7e18f4b4) is correct. A CMDB relationship rule exists:
cmdb_ci_lb_pool >> Hosted on >> u_cmdb_ci_kemp_lb.

Despite this, the payload continues to trigger the MISSING_DEPENDENCY warning. I’ve confirmed:

  • The load balancer CI exists and is discoverable.

  • The hosting relationship is configured with direction child → parent.

  • Column name is correctly set to load_balancer.

Questions:

  1. Is there anything specific required in the payload (besides load_balancer) to satisfy the containment rule?

  2. Does the IRE require the relationship to be explicitly defined in the relations array when using reference fields?

  3. Could this be caused by a misconfiguration in the CMDB relationship metadata?

Any guidance or examples of working patterns with cmdb_ci_lb_pool referencing a custom LB class like u_cmdb_ci_kemp_lb would be very helpful.

Thanks in advance!

 

 

Screenshot 2025-05-07 at 10.24.09 PM.png

 Please help 

 

@itom 

1 REPLY 1

Steven Coda
Tera Expert

Pratiksha,  

 

The MISSING_DEPENDENCY message from the Identification and Reconciliation Engine (IRE) usually means that Discovery or IRE couldn’t validate a dependent CI relationship during reconciliation, even if the reference field is populated.

 

In your case, the payload for cmdb_ci_lb_pool references a load balancer (u_cmdb_ci_kemp_lb) through the load_balancer field, but IRE still needs to confirm that:

 

  • The parent CI (u_cmdb_ci_kemp_lb) has a valid Identification Rule, and
  • The relationship (for Hosted on between cmdb_ci_lb_pool → u_cmdb_ci_kemp_lb) is correctly defined
  • If the parent CI’s class doesn’t have an Identification Rule, or if the relationship rule doesn’t align with the field definition, IRE can’t resolve the dependency.

 

You can test this by:

  1. Verifying there’s an Identification Rule for u_cmdb_ci_kemp_lb
  2. Confirming that the dictionary entry for load_balancer references cmdb_ci_lb)
  3. Ensuring your relationship type points from the pool (child) to the load balancer (parent)

 

Reference:

  • This behavior is described in ServiceNow KB0725816 – “Identification Engine MISSING_DEPENDENCY error.”
    It explains that IRE throws this error when a dependent class relation can’t be matched to an existing containment or hosting rule, even if a sys_id reference exists.
  • Once the identification and relationship metadata align, the payload should reconcile correctly without the MISSING_DEPENDENCY warning.

 

Hope this helps you move forward!