0

After a Bulk API upsert, I can inspect the batch after the fact and see that my 4 records failed.

{
'apexProcessingTime': '0',
'apiActiveProcessingTime': '1',
'createdDate': '2017-07-21T15:33:47.000Z',
'id': '...',
'jobId': '...',
'numberRecordsFailed': '4',    # This is non-zero, so something went wrong
'numberRecordsProcessed': '4',
'state': 'Completed',
'systemModstamp': '2017-07-21T15:33:47.000Z',
'totalProcessingTime': '21',
}

Is there any way to get the reason they failed? An error message of any sort, so that I may correct whatever is wrong.

(For the curious, I'm using the salesforce-bulk Python library, and used the batch_status function to get the above print out.)

  • 1
    Did you goto the bulk jobs ui in SF and download the error log. I believe the info is there. I am pretty sure you can get this via API as well but do not know syntax of the top of my head – Eric Jul 21 '17 at 15:49
  • Found the result.csv in the Salesforce dashboard (Setup -> Environments -> Jobs -> Bulk Data Load Jobs, or just searching "Bulk Data Load Jobs in the left-side search bar on Setup page"). Thanks! Separately, also wondering how to do with API, will edit the Q – tscizzle Jul 21 '17 at 16:22
1

Using the salesforce-bulk Python library I mentioned, see this file and find def get_batch_results.

If you're not in Python (which is quite likely), see how that function is defined. It uses a URI of the form:

endpoint + "/job/<job_id>/batch/<batch_id>/result"

where endpoint is the base Salesforce API URL you've been using. And insert your job_id and batch_id you get as direct response of the bulk request you want to observe the results for.

Note that they have handling for different response content types:

if resp.headers['Content-Type'] == 'application/json':
    ...
elif resp.headers['Content-Type'] == 'text/csv':
    ...
elif resp.headers['Content-Type'] == 'application/xml':
    ....
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.