in the jqGrid version 4.1.2 there are two places where buildSelect will be used: in the line 354 of the grid.common.js it will be used inside of success handler of $.ajax and in the line 324 of the grid.custom.js inside of complete handler of $.ajax. It follows to the problem that the the paramer of the buildSelect function can be either the data from the server response converted corresponding to the Content-Type of the HTTP header and the dataType parameter. So the parameter can be either a string or object/array depend on the contain of the HTML/JSON response. It can be additionally an object where responseText property contains the main data. So to make the program working one have to test the type and the property of the input parameter before the data could be processed.
The answer described one from the problems.
Additional problem in the current code of grid.custom.js is that the buildSelect will be called also in case of the error response from the server. In the case the input data has absolutely another format. So I suggest to change the code of grid.custom.js so that one uses success handler of $.ajax like it is already in the grid.common.js.