Skip to content

Field and completed-text limits

Detailed page. Use “On this page” to jump directly to the section you need.

Use this page when Salesforce rejects a Check Set or Check value, a Check returns RESOLVED_TEMPLATE_TOO_LONG, or a failed Check does not show its action link.

Two limits can apply. The Salesforce field limit controls what an administrator can save in Custom Metadata. The completed-text limit applies later, after Record Health Check replaces merge tokens such as {!record.Name} with Salesforce values. Most fields have only the Salesforce limit.

What you observeWhich limit mattersWhat to do
Salesforce will not save or deploy the Custom Metadata valueWhat Salesforce acceptsFind the field below and shorten or correct the value so it matches the Salesforce field type and limit.
A Check returns UNABLE_TO_EVALUATE with RESOLVED_TEMPLATE_TOO_LONGCompleted text limitShorten the configured text or the Salesforce values inserted by its merge tokens.
A failed Check does not show its configured action linkThe Action URL limit and URL checksThe failure still appears. Keep the final URL within 2,000 characters and use a same-org relative URL or an https:// URL.

Some fields contain a message template rather than the final words a user sees. Record Health Check creates the completed text by replacing merge tokens with Salesforce data. For example, {!record.Name} is replaced with the current record’s Name. Add a quoted fallback when an empty value needs a substitute, as in {!record.Name fallback="Unnamed record"}.

A saved template can therefore be short while the completed text becomes much larger. FailureMessage__c might contain Account {!record.Name} needs review., but the Account Name is not inserted until the Check runs.

Record Health Check limits one completed value to 20,000 characters. This prevents an inserted Salesforce value from creating an unexpectedly large Apex or Flow response and keeps the Lightning card from receiving more display text than intended.

When completed text crosses the limit, Record Health Check returns UNABLE_TO_EVALUATE with RESOLVED_TEMPLATE_TOO_LONG. It does not cut the message because partial instructions could mislead the user. Not applicable means the field does not accept Record Health Check merge tokens, so only the Salesforce limit matters.

One display template can contain at most 100 merge tokens, and one completed value can contain at most 20,000 characters. Record Health Check returns UNABLE_TO_EVALUATE instead of silently shortening text. A completed Action URL also must pass URL safety checks and contain no more than 2,000 characters.

These Check Set fields can be affected by a saved-value or completed-text character limit. Select an API name for its Setup label, purpose, default, and examples.

Field API nameSalesforce field typeWhat Salesforce acceptsCompleted text limitIf the value is too long
CardSubtitle__cText25520,000Record Health Check returns UNABLE_TO_EVALUATE with RESOLVED_TEMPLATE_TOO_LONG; it does not shorten the text
CardTitle__cText255Not applicableRecord Health Check uses the saved value as-is
ObjectApiName__cText80Not applicableRecord Health Check uses the saved value as-is
RerunButtonLabel__cText80Not applicableRecord Health Check uses the saved value as-is
RunButtonIcon__cText80Not applicableRecord Health Check uses the saved value as-is
RunButtonLabel__cText80Not applicableRecord Health Check uses the saved value as-is

These Check fields can be affected by a saved-value or completed-text character limit. Select an API name to learn which Evaluation Type uses it and how it affects the result.

Field API nameSalesforce field typeWhat Salesforce acceptsCompleted text limitIf the value is too long
ActionLabel__cText8020,000Record Health Check returns UNABLE_TO_EVALUATE with RESOLVED_TEMPLATE_TOO_LONG; it does not shorten the text
ActionUrl__cLongTextArea327682,000Record Health Check leaves out a URL over 2,000 characters or one that fails its safety checks
ApexClass__cText255Not applicableRecord Health Check uses the saved value as-is
ApexParametersJson__cLongTextArea32768Not applicableRecord Health Check uses the saved value as-is
ApplicabilityCountQuery__cLongTextArea32768Not applicableRecord Health Check uses the saved value as-is
ApplicabilityFormula__cLongTextArea32768Not applicableRecord Health Check uses the saved value as-is
ApplicabilityNotMetMessage__cLongTextArea3276820,000Record Health Check returns UNABLE_TO_EVALUATE with RESOLVED_TEMPLATE_TOO_LONG; it does not shorten the text
CheckDescription__cText25520,000Record Health Check returns UNABLE_TO_EVALUATE with RESOLVED_TEMPLATE_TOO_LONG; it does not shorten the text
CheckTitle__cText255Not applicableRecord Health Check uses the saved value as-is
ComparisonQueryField__cText255Not applicableRecord Health Check uses the saved value as-is
ComparisonQuery__cLongTextArea32768Not applicableRecord Health Check uses the saved value as-is
DisplayExpectedFormula__cLongTextArea32768Not applicableRecord Health Check uses the saved value as-is
DisplayExpectedText__cText25520,000Record Health Check returns UNABLE_TO_EVALUATE with RESOLVED_TEMPLATE_TOO_LONG; it does not shorten the text
DisplayFoundFormula__cLongTextArea32768Not applicableRecord Health Check uses the saved value as-is
DisplayFoundText__cText25520,000Record Health Check returns UNABLE_TO_EVALUATE with RESOLVED_TEMPLATE_TOO_LONG; it does not shorten the text
ExpectedCurrencyIsoCode__cText3Not applicableRecord Health Check uses the saved value as-is
ExpectedFixedValue__cText255Not applicableRecord Health Check uses the saved value as-is
ExpectedRecordFormula__cLongTextArea32768Not applicableRecord Health Check uses the saved value as-is
FailureMessage__cLongTextArea3276820,000Record Health Check returns UNABLE_TO_EVALUATE with RESOLVED_TEMPLATE_TOO_LONG; it does not shorten the text
FindInListFormula__cLongTextArea32768Not applicableRecord Health Check uses the saved value as-is
FixMessage__cLongTextArea3276820,000Record Health Check returns UNABLE_TO_EVALUATE with RESOLVED_TEMPLATE_TOO_LONG; it does not shorten the text
PassConditionFormula__cLongTextArea32768Not applicableRecord Health Check uses the saved value as-is
PrerequisiteCheck__cText255Not applicableRecord Health Check uses the saved value as-is
SourceQueryField__cText255Not applicableRecord Health Check uses the saved value as-is
SourceQuery__cLongTextArea32768Not applicableRecord Health Check uses the saved value as-is
UnableToEvaluateMessage__cLongTextArea3276820,000Record Health Check returns UNABLE_TO_EVALUATE with RESOLVED_TEMPLATE_TOO_LONG; it does not shorten the text

Fields controlled by something other than character count

Section titled “Fields controlled by something other than character count”

These fields are still constrained, but making their text shorter will not solve the problem. Picklists accept only shipped API values, checkboxes accept true or false, Number fields enforce their digit count, and the relationship must name a Check Set.

Metadata typeSalesforce field typeConstraintField API names
Check SetPicklistRestricted value setCardHeadingDisplay__c, CardRevealMode__c, CardRunMode__c, FoundExpectedDisplay__c, PassedChecksDisplay__c, RunButtonDisplay__c, SkippedChecksDisplay__c, SummaryDisplay__c
Check SetCheckboxtrue/falseIsActive__c, PublishErrorLogEvent__c, PublishUserRunEvent__c, ShowDiagnostics__c, StopOnSystemError__c
CheckPicklistRestricted value setApplicabilityCountOperator__c, ApplicabilityMode__c, Category__c, ComparisonDisplayMode__c, ComparisonOperator__c, DisplayValueFormat__c, EmptyValueHandling__c, EvaluationType__c, ExpectedValueSource__c, FailureSeverity__c, FormulaResultType__c, NoRowsResult__c, QueryResultHandling__c
CheckNumber4 digits, 0 decimal placesApplicabilityCountThreshold__c, EvaluationOrder__c, MaxQueryRows__c
CheckCheckboxtrue/falseIsActive__c, PublishUserResultEvent__c
CheckMetadata relationshipMust name a Check SetRecord_Health_Check_Set__c

This page covers all 19 Check Set fields and 45 Check fields in the shipped Custom Metadata definitions.

Salesforce rejects a value that does not fit its Custom Metadata field. Record Health Check never receives that value. Shorten or correct it, then save or deploy again.

When inserted values make display text longer than 20,000 characters, the Check returns UNABLE_TO_EVALUATE with RESOLVED_TEMPLATE_TOO_LONG. Shorten the configured message or review the Salesforce fields used by its merge tokens. Record Health Check does not cut off the message because partial guidance could mislead the user.

When an Action URL is unsafe or longer than 2,000 characters, the Check can still return FAIL and show its Fix Message, but Record Health Check leaves out the link. An authorized administrator can use Show Diagnostics to investigate the completed URL.