Existing computer CIs imported by Service Graph Connector for Jamf are not updating the Most recent discovery (last_discovered) fieldIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Computer Configuration Items (CIs) imported by the Service Graph Connector (SGC) for Jamf appear stale because the most recent discovery (last_discovered) field is not refreshed on existing CIs, even though the incoming import data contains a newer value. The field is populated correctly when a CI is first created, but subsequent imports of the same CI do not update it. Symptoms<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Computer CIs sourced from Jamf show an outdated Most recent discovery (last_discovered) value and appear stale, even though the Jamf "Last Check-in" data is current.The last_discovered value is written only when the CI is first created (INSERT); it is not updated on later imports of the same CI (UPDATE).The Identification and Reconciliation Engine (IRE) payload contains a newer last_discovered value than the value stored on the CI, but the CI attribute is not updated.IRE logs show the attribute update being skipped on UPDATE: 'Reconciliation: cmdb_ci_computer(last_discovered) field update skipped for Data Source SG-Jamf' identification_engine : logId:[c227613b1b61] IdentificationEngine::process: Pass=1identification_engine : logId:[c227613b1b61] addAttempt [{"className":"cmdb_ci_computer","values":{"cpu_name":"Apple M4 Pro","last_discovered":"2026-06-24 10:00:00"},"internal_id":"4627613b7f618b507cf065ba88694e3b","sys_object_source_info":{"source_recency_timestamp":"2026-06-24 10:00:00","source_feed":"SG-JAMF Computers","source_name":"SG-Jamf","source_native_key":"TFS JAMF HTTP Connection|aaa1D-aaAA-ww13-eee6-0Fqqq43111"},"settings":{},"sys_ire_info":{},"display_values":{}}] - [sys_object_source sys_id 92f15e4e586dc3545af07ee7db7aa73e] MATCHEDidentification_engine : logId:[c227613b1b61] createOrUpdateCI: Matched 1 records and 0 relations in 0msecidentification_engine : logId:[c227613b1b61] Reconciliation: cmdb_ci_computer(last_discovered) field update skipped for Data Source SG-Jamfidentification_engine : logId:[c227613b1b61] Commit: UPDATE cmdb_ci_computer : 92f15e4e586dc3545af07ee7db7aa73e On re-imports where the source timestamp equals or is older than the stored scan time, IRE logs show: 'sys_object_source MATCHED. Operation set to NO_CHANGE due to newer entry in sys_object_source from same feed' Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } All currently supported releases. Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } A reconciliation definition controls which data sources are authorized to update specific attributes for a CI class. When a data source lacks a reconciliation definition for a class that already has definitions for other sources, IRE masks (skips) that source's attribute updates during UPDATE operations.Because the Jamf source lacks a reconciliation definition for the Computer class, as other sources do, IRE does not write the Jamf values — including last_discovered — to an existing CI.Reconciliation rules do not apply to record creation, so any source may create a CI; this is why the value is populated on INSERT but skipped on UPDATE. A secondary, by-design behavior also contributes: when the source recency timestamp in the payload equals or is older than the scan time already stored on the source record, IRE sets the operation to NO_CHANGE. On a NO_CHANGE operation, an explicitly supplied last_discovered value is not written, so the field is not refreshed in that scenario either. Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Create a reconciliation definition for SG-Jamf on the cmdb_ci_computer class to authorize updates to the last_discovered field. This ensures SG-Jamf's attribute data is recognized as authoritative for reconciliation.2. Verify that the reconciliation definition is correctly configured in the CMDB Reconciliation Definitions list and that SG-Jamf is listed with the appropriate priority.3. After configuring the reconciliation definition, reprocess the JAMF import to confirm that the last_discovered field updates as expected. NOTE: Validate the change in a sub-production instance first. Run a Jamf import (or an IRE simulation) and confirm that last_discovered updates on an existing CI before applying the rule to production. Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Discovery Source, First Discovered, Most recent Discovery and Manual Entry don't mean what you thinkHow to debug the Identification and Reconciliation Engine using background scriptsCreate a CI reconciliation ruleIdentification and Reconciliation Engine (IRE)