Quadratic and non-linear expressions cannot be mixed up!

Hi, I am setting up a non-linear objective which contains both quadratic and non-linear terms. However, I am getting the following error

Unexpected quadratic expression 378.5346047250809 e[1]² + 378.5346047250809 f[1]² + 378.5346047250809 e[2]² + 378.5346047250809 f[2]² - 757.0692094501618 e[1]*e[2] - 757.0692094501618 f[1]*f[2] in nonlinear expression. 
Quadratic expressions (e.g., created using @expression) and nonlinear expressions cannot be mixed.

Now, the thing is I am setting non-linear constraints as well which contains both quadratic and non-linear expressions using @NLconstraint macro but I am not getting the above mentioned error. For the objective function, I need the summation of non-linear expression, therefore, I set up a loop and store all non-linear expressions in an array, and then I am using the ‘sum’ function in order to get the final expression. However, when I give this final expression to @NLobjective macro, I am getting the above-mentioned error. Why is that? and what would be the possible solutions to overcome this error?

The code for objective function is as follows:

ploss = []
for i in 1:nLines
    rline = nw_lines[i].line_r
    gij_line = real(yij_line[i,1])
    bij_line = imag(yij_line[i,1])
    lcrnt    = (gij_line^2+bij_line^2)*((e[nw_lines[i].line_from]^2+f[nw_lines[i].line_from]^2)+(e[nw_lines[i].line_to]^2+f[nw_lines[i].line_to]^2)
loss_expr = sum(ploss[j] for j in 1:size(ploss,1))

Use @objective instead of @NLobjective. @objective can be used with linear and quadratic terms.

But my objective also contains the product of two variables and I cannot set it using @objective macro. So, I have a combination of quadratic terms


and bilinear terms


and I cannot set it using @objective macro.

Please try it; you can add bilinear terms with @objective.

Well, it worked. But honestly speaking, I was not expecting it.
I have a lot of constraints which are the mixture of quadratic and non-linear expressions and I have set them through @NLconstraint macro. I was expecting the same for the objective (containing both quad and NL expressions); however, it seems that I was wrong. Although I have also looked into non-linear modelling page of JuMP and still, I believe that I was setting the objective right way.
Anyway, thanks a lot, man!