Identification error "Identity Rule for table [cmdb_ci_table_name] missing Lookup Rule for class [table_name]"


Description

A payload passed to the identification engine returns error like:

Example error:

IDENTIFICATION_RULE_FOR_LOOKUP_MISSING Identity Rule for table [cmdb_ci_hardware] missing Lookup Rule for class [cmdb_serial_number]: no thrown error

This can happen from any data source or application sending data to the IRE to update the CMDB.

In the following example we see this error when running a windows server discovery:

Identity Rule for table [cmdb_ci_win_server] missing Lookup Rule for class [cmdb_serial_number],Identity Rule for table [cmdb_ci_win_server] missing Related Rule for class [discovery_net_arp_table],Abandoned due to too many errors

Cause

The Identification and Reconciliation Engine (IRE) will attempt to remove duplicate data from a payload before processing it. The IRE needs to understand what makes a record unique before removing it from the payload. Depending on the class this could be done via the identifiers, lookup rules, or related entries. However if rules cannot be found to determine uniqueness the error is returned. This issue is often seen when Out Of Box (OOB) identifiers are customized.

Resolution

There are different options to resolve this error. First we need to find the identifier used.

Finding the Identifier:

  1. From the following error we see the identifier class is cmdb_ci_hardware, and missing rule for cmdb_serial_number
    IDENTIFICATION_RULE_FOR_LOOKUP_MISSING Identity Rule for table [cmdb_ci_hardware] missing Lookup Rule for class [cmdb_serial_number]: no thrown error
  2. Navigate to "Configuration > Identification/Reconciliation > CI Identifiers"
  3. Search for the identifier, in this case cmdb_ci_hardware would be used to search on field "Applies to"

Option A

Add a proper lookup identifier or related entry to the identifier:

  1. Is the error for a Lookup rule?
    • Yes: Add a lookup rule using the missing rule table
      • Would be cmdb_serial_number on this example, see following example
  2. Is the error for Related entry?
    • Yes: Add related entry. In the following example we see a related entry for "cmdb_key_value"

Note: If the OOB identifier already contained such rule or entry, revert to OOB.

Option B

If a rule for this class cannot be added for some reason the remove the problem records from the payload.

As an example, one would need to update the pattern steps which collect/build such data if this error were to happen on a pattern discovery. This would depend on the application calling the IRE.