There was a bug in xspec v12 when using the error command with the migrad method. If there were frozen parameters the wrong parameter number was being passed to the MINOS command.
A useful tip to know when using migrad is that the standard MINUIT output is written to the file mn_output.log in the current directory.
Handy C++ tip: there is a function, distance, associated with maps to return the distance in the first index of the map between two iterators. So if we have a map called mymap and an iterator called iter then the position in the map list of iter is 1+distance(mymap.begin(),iter).
Keywords: HEAsoft, xspec