Why does a layout fail on a missing field?
The layout file lists a field in a section, and Salesforce cannot find that field in the org you are deploying to.
The message names the object and the field, in the form Object.Field__c. That is the first thing to look up.
Where does the missing field come from?
- The field is new in the sandbox and you shipped the layout without it. Layouts do not bring their fields along.
- The field exists but under another API name in the target, often after a rename or when a managed package adds a namespace prefix.
- The field lives on another object, and a related list or lookup column on the layout points at it.
- The target is a partial sandbox or an older refresh, so the field never arrived.
What does the layout error look like?
A layout Account-Partner Layout with Vendor_Rating__c in a layout section, a field that is not in the org. Check-only deploy:
Account-Partner Layout (Layout)
In field: field - no CustomField named Account.Vendor_Rating__c found (2:277)
The pair at the end is the line and column in the layout file as the API received it, which may not match the file in your project. Search the file for the field name instead.
How do I fix it in Setup?
- In the target org, open Setup > Object Manager > Account > Fields & Relationships and search for the field name. If it is not there, the field has to come first.
- Add the field to your deployment, or deploy it in an earlier step, then deploy the layout.
- If the field is meant to stay behind, open the layout file and delete the
<layoutItems>block that names it. - If the field exists under a different API name, correct the name in the layout.
- Validate again.
How do I fix it with the CLI?
sf project deploy start --dry-run --source-dir force-app/main/default/objects/Account/fields/Vendor_Rating__c.field-meta.xml --source-dir force-app/main/default/layouts -o <target-alias>
One related note from Salesforce: a deployment that includes a profile and record type, but not the page layout assigned to that record type, removes the existing layout assignment from the profile for that record type (Salesforce Help). So when you add the layout back, add every layout for each record type you ship.
How do I stop layouts shipping without their fields?
Build your package from the field list, not from the layout list. When someone adds a field to a layout in a sandbox, assume that field is part of the change. In a version-controlled project, retrieve the layout and the fields in one command so they travel together.
Clientell AI checks whether the target has the fields a layout references, and shows the layout and its fields together in the diff. See AI Salesforce deployments. More on layouts in the page layout glossary entry.
Similar "no X named Y found" errors: missing quick action on a layout, missing grant in a profile or permission set, missing picklist value on a record type, missing LWC module.
Questions about missing custom fields on a layout
Can a layout deploy with fields it cannot find?
No. An unknown custom field fails the layout. Standard fields that exist in the target are fine.
The field exists in the target. Why do I still get the error?
Check the exact API name and the object. Account.Vendor_Rating__c and Contact.Vendor_Rating__c are different fields. Also check for a namespace prefix on the target side.
Does the same error appear for Lightning pages?
Lightning record pages are FlexiPages. They fail with a different message, but the fix is the same: deploy the field first.
Is a search layout the same?
Search layouts are separate metadata, but they fail the same way when a field is missing (Stack Exchange).