How to fix it

  1. Navigate to System Definition > Client Scripts and search for scripts affecting your table.
  2. Look for g_form.setValue() calls on your reference field that only have two parameters.
  3. Change g_form.setValue('field_name', sysId) to g_form.setValue('field_name', sysId, displayValue).
  4. If you don't have the display value, use a GlideAjax call to retrieve it before setting the field.
  5. Navigate to System Definition > Dictionary and search for your reference field.
  6. Open the Dictionary Entry and check the Display field to see which field from the referenced table is used for display.
  7. Navigate to the referenced table and open a few records that are showing sys_ids.
  8. Check if the display field (from step 6) has values populated on these records.
  9. If the display field is empty, populate it with appropriate values or change the Dictionary Display field to point to a field that has data.
  10. Navigate to System Definition > Business Rules and search for rules on your table.
  11. Look for Business Rules that set your reference field using current.field_name = value or gr.setValue().
  12. If found, modify the Business Rule to also set the display value using current.field_name.setDisplayValue(displayValue).
💡

After making changes, refresh the form or list view. If the sys_id still appears, clear your browser cache and check if the referenced record's display field actually contains data.