Reference fields: setDisplayValue may result in saving an unexpected sys_id value if there are multiple target records that match the set value.Description<!-- div.margin { padding: 10px 40px 40px 30px; } table.tocTable { border: 1px solid; border-color: #e0e0e0; background-color: #fff; } .title { color: #d1232b; font-weight: normal; font-size: 28px; } h1 { color: #d1232b; font-weight: normal; font-size: 21px; margin-bottom: 5px; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: #cccccc; } h2 { color: #646464; font-weight: bold; font-size: 18px; } h3 { color: #000000; font-weight: bold; font-size: 16px; } h4 { color: #666666; font-weight: bold; font-size: 15px; } h5 { color: #000000; font-weight: bold; font-size: 13px; } h6 { color: #000000; font-weight: bold; font-size:14px; } ul, ol { margin-left: 0; list-style-position: outside; } --> Symptoms A reference field shows the correct display name, but the actual record is not the intended/expected record when examined or clicked through. Release London Cause This happens as a result of the following combined conditions: The reference field was set using setDisplayValueThere are multiple records on the referenced target table which match the value An example of this may be when there are multiple [sys_user] records for the same person or the same name, and a reference field like [caller_id] implements some custom logic that uses g_form or current's setDisplayValue (ex: John Smith). If there are 2 John Smith users, the reference field's auto-completer will look up the name and return the first result it finds. Resolution To resolve the behavior, we recommend to always use 'setValue' for reference fields and pass in the precise 'sys_id' for the expected record.