Hi Toit, apologies for the delay.
This was quite an oversight from the original design, so thank you for raising it. I have pushed a fix to the OPTI master branch which now allows you to vary x0 without rebuilding the object:
clear
B = SymBuilder();
B.AddObj('(x1-x2)^4 + (x2+x3-2)^2+ (x4-1)^2 + (x5-1)^2');
B.AddCon('x1^2 + 3*x2 = 4');
Build(B)
options = optiset('solver','ipopt');
symset = symbset('cbmode','ccode','optiOpts',options);
% Solve Problem
x0 = [0;0;0;0;0];
[~,fval,~,info] = Solve(B,x0,symset)
%% Re-Solve Problem from Different Starting Point
x0 = [0;-1e4;0;0;1e1];
[~,fval,~,info] = Solve(B,x0,symset)