You need to sign in to do that
Don't have an account?
Nishant Prajapati 10
Trailhead Superbatch Process Automation - Step 6 Error
There was an unhandled exception. Please reference ID: HTNVCCJL. Error: Faraday::ClientError. Message: MALFORMED_QUERY: When retrieving results with Metadata or FullName fields, the query qualifications must specify no more than one row for retrieval. Result size: 4
My Flow looks like:
My Flow looks like:
Please check with below information
Summary: Salesforce has put a restriction for queries containing Fullname or Metadata field and it is for all objects. It is because we have performance concerns on the query system if the query result involves multi records of entities including Fullname/Metadata fields.
Note this restriction doesn't apply to queries that are not selecting Fullname/Metadata fields.
Repro:
1.) Login to an ORG using WorkBench
2.) Go to the Rest explorer and execute the following GET on any entity which has more than one row, in our case Layout --
/services/data/v33.0/tooling/query/?q=SELECT+Id%2C+Name%2C+FullName%2C+TableEnumOrId%2C+Metadata+FROM+Layout
and you would see an error
MALFORMED_QUERY: When retrieving results with Metadata or FullName fields, the query qualificatio ns must specify no more than one row for retrieval. Result size: [n>1]
Whereas if you remove the Fullname and Metadata fields from the query, you would get the expected results.
Workaround
Query this field only if the query result contains no more than one record. Otherwise, an error is returned.
If more than one record exists, use multiple queries to retrieve the records. This limit protects performance.
// Get all the IDs
SELECT Id FROM Layout WHERE TableEnumOrId IN (Contact, Opportunity, Quote) ORDER BY Name
// Do this for each id
SELECT FullName, Metadata, Name, TableEnumOrId FROM Layout WHERE id = 'Some_id'
Hope this helps.
Mark this as solved if the information helps.
Thanks,
Nagendra
All Answers
Please check with below information
Summary: Salesforce has put a restriction for queries containing Fullname or Metadata field and it is for all objects. It is because we have performance concerns on the query system if the query result involves multi records of entities including Fullname/Metadata fields.
Note this restriction doesn't apply to queries that are not selecting Fullname/Metadata fields.
Repro:
1.) Login to an ORG using WorkBench
2.) Go to the Rest explorer and execute the following GET on any entity which has more than one row, in our case Layout --
/services/data/v33.0/tooling/query/?q=SELECT+Id%2C+Name%2C+FullName%2C+TableEnumOrId%2C+Metadata+FROM+Layout
and you would see an error
MALFORMED_QUERY: When retrieving results with Metadata or FullName fields, the query qualificatio ns must specify no more than one row for retrieval. Result size: [n>1]
Whereas if you remove the Fullname and Metadata fields from the query, you would get the expected results.
Workaround
Query this field only if the query result contains no more than one record. Otherwise, an error is returned.
If more than one record exists, use multiple queries to retrieve the records. This limit protects performance.
// Get all the IDs
SELECT Id FROM Layout WHERE TableEnumOrId IN (Contact, Opportunity, Quote) ORDER BY Name
// Do this for each id
SELECT FullName, Metadata, Name, TableEnumOrId FROM Layout WHERE id = 'Some_id'
Hope this helps.
Mark this as solved if the information helps.
Thanks,
Nagendra
This worked for me. Actually I had 4 Lightning Record Pages on Opportunity object. I just keep the default and deleted rest.
I am glad it helped.
May I request you please close this thread by marking it as solved so that it gets removed from the unanswered queue which results in helping others who are encountering a similar issue.
Thanks,
Nagendra.