Describe the problem/error/question
when the agent calls the salesforce tool, sometimes it hits an error. all the agent sees is the output
, which is simply “Bad request - please check your parameters”.
But the error details contain way more info, including what specifically is wrong - like “ERROR at Row:1:Column:38\nNo such column ‘Source__c’ on entity ‘Opportunity’”.
this would be very valuable for the agent to know so it can modify its query, but it doesn’t actually see these details, so it keeps trying to use a field that doesn’t exist.
I don’t see an easy way to do this in the existing salesforce tool and will likely need to do some custom work to pass these error details back to the agent instead of just the “Bad request - please check your parameters”?
Information on your n8n setup
- n8n version: 1.89.2
- Database (default: SQLite):
- n8n EXECUTIONS_PROCESS setting (default: own, main):
- Running n8n via (Docker, npm, n8n cloud, desktop app): n8n cloud
- Operating system:
Here’s another update - the Salesforce standalone node works as expected, it passes the error message back with useful context:
It seems it’s just the agent tool that doesn’t do this. I can create a separate workflow around this the agent can call as a tool - but fixing this at the tool level would be great and make things much smoother
Edited - the node also does not pass error details on. They show up differently in the UI but don’t actually pass through in the output when you set it to continue on error
I even tried making a custom HTTP request node that calls the salesforce API to run a search query, hoping that passed error details back - but it did not. It seems tools don’t natively pass error details back to logs in a way the agent can consume, which I think feels like a big miss.
My workaround has been to create a separate workflow with an HTTP request node that hits the salesforce search - and this does allow error details to be captured. So I add this workflow as a tool to my agent, and now it can see error messages. This allows it to run far more smoothly so it can quickly correct itself in one execution.