sarah_bioni
ServiceNow Employee

Recently, I faced an issue where newly created dictionary fields were saving with the Label field empty.

 

Root Cause: MySQL Static Row Size Limitation

ServiceNow tables that use a Table‑Per‑Hierarchy structure accumulate the size of all columns across the hierarchy. When the combined size of all varchar fields becomes too large, the underlying MySQL storage engine reaches its static row size limit.
When this limit is exceeded, dictionary operations such as creating fields or modifying existing ones silently fail at the database layer. As a result, metadata may save partially, leading to symptoms like “Label disappearing”.

This is not a ServiceNow defect, but a known MySQL limitation.

 

How to Fix It

To reduce the static row size and allow new fields to be created, there are two recommended approaches:

 

1. Remove Unused Columns

If the table contains old or unnecessary fields, removing them immediately reduces the row size.

 

2. Convert Large Varchar Fields to TEXT

Increasing a varchar length to 256 or higher makes ServiceNow automatically convert the column to a TEXT type.
Reviewing column sizes and converting large varchar fields to TEXT can restore normal dictionary behavior.

Comments
HugoFirst
Kilo Sage

Just to be sure I understand, I'm trying to relate your terms to the types that I see in the dictionary.

Is a varchar the same thing as a type = string?   
So the advice on option #2 would be to find string columns that are less than 256 characters and increase them to more than that?

sarah_bioni
ServiceNow Employee

Hi @HugoFirst ,

 

Exaclty, field with string type.

 

Yes, the recommendation is to increase it for 256 or more.

 

Regards,

Sarah Bioni

Version history
Last update:
3 weeks ago
Updated by:
Contributors