Error Reference

Field not found on table: invalid column reference

Field not found on table: invalid column reference

Where this appears

This error appears in the System Log under System Diagnostics > Log > Application Log when server-side scripts attempt to access table fields that don't exist. It commonly occurs during Business Rule execution, Script Include calls, or background script operations when using GlideRecord methods like getValue() or setValue().

Sourdough
Chrome Extension

Debugging this in a real instance?

Sourdough lets you trace "Field not found on table: invalid column reference" through system logs, script errors, and API health in the ServiceNow tab you are already using.

Add to Chrome

Free to install. Pro $5/month after a 14-day no-card trial.
Pro requires the ServiceNow admin role. Upgrade inside the extension.

Overview
Tasks
CMDB
API
Metrics
Monitor
Internals
Instance:sourdoughdev·Version:Yokohama
Instance StateONLINE
System StatusFully Operational
Session Timeout90 minutes
Logged-In Sessions2 (20 active)
Build Nameyokohama-12-18-2024_p1
IP Address10.159.128.43
Instance HealthHealth Score: 90%
🔥 5dSourdough (Chrome Plugin)Dark Mode

Cause

Script references a field name that was misspelled or contains typos in getValue(), setValue(), or dot-walking operations. (high likelihood)

Field was recently deleted or renamed through table schema changes, but existing scripts still reference the old field name. (high likelihood)

Script attempts to access a field that exists on a different table or extended table, but not on the current GlideRecord's table. (medium likelihood)

Custom field was created with different naming than expected, or field access control rules prevent the script from seeing the field. (medium likelihood)

Script uses dynamic field names constructed from variables that resolve to invalid field names at runtime. (low likelihood)

Fix

Step 1: Navigate to System Diagnostics > Log > Application Log and locate the full error message to identify the exact field name and table being referenced.

Step 2: Go to System Definition > Tables and search for the target table, then verify if the field exists in the Columns related list.

Step 3: If the field doesn't exist, check System Definition > Dictionary to search for fields with similar names that might be the intended target.

Step 4: Review the script code and verify the field name spelling matches exactly with the dictionary entry, including case sensitivity and underscores.

Step 5: If the field was renamed, update all script references or create a field alias using the old name pointing to the new field in the dictionary.

Step 6: Check field access controls under Security > Access Control (ACL) to ensure the script's execution context has read/write permissions to the field.

Step 7: Test the corrected script using Background Scripts under System Definition > Scripts - Background to verify the field access works properly.

Step 8: If using dynamic field names, add existence checks using GlideRecord.isValidField() before attempting getValue() or setValue() operations.

Test Your Knowledge

Quick 3-question quiz. See how your ServiceNow skills stack up.

Question 1 of 3Performance

A list view on a table with millions of records is slow. Best fix?

Select an answer to continue