Getting two different answers for the same integral

Here, when I run this code:

f[x_, y_, p_] := (x^d + y^d)*Sign[x - p]*Sign[y - p];
assumptions = {p > 0, p < 1, x > 0, x < 1, y > 0, y < 1, d < 0};
H[p_, d_] =
Integrate[f[x, y, p], {x, 0, 1}, {y, 0, 1},
Assumptions -> assumptions];
H[p, d]


I get:

$$-\frac{2 \left(p^{d+1}+p-1\right)}{d+1}\text{ if d>-1}$$

But when I put the answer's condition ($$d>-1$$) inside the initial assumptions:

f[x_, y_, p_] := (x^d + y^d)*Sign[x - p]*Sign[y - p];
assumptions = {p > 0, p < 1, x > 0, x < 1, y > 0, y < 1, d < 0,
d > -1};
H[p_, d_] =
Integrate[f[x, y, p], {x, 0, 1}, {y, 0, 1},
Assumptions -> assumptions];
H[p, d]


I get a different asnwer:

$$\frac{2 (2 p-1) \left(2 p^{d+1}-1\right)}{d+1}$$

What is happening here?

It seems to have to do with not going to the GenerateConditions code of Integrate.

Compare

f[x_,y_,p_]:=(x^d+y^d)*Sign[x-p]*Sign[y-p];
assumptions={p>0,p<1,x>0,x<1,y>0,y<1,d<0};
Integrate[f[x,y,p],{x,0,1},{y,0,1},Assumptions->assumptions,GenerateConditions->True]


f[x_,y_,p_]:=(x^d+y^d)*Sign[x-p]*Sign[y-p];
assumptions={p>0,p<1,x>0,x<1,y>0,y<1,d<0};
Integrate[f[x,y,p],{x,0,1},{y,0,1},Assumptions->assumptions,GenerateConditions->False]


Which is the same output when using the new assumptions you had, even though now there is no GenerateConditions->False

f[x_, y_, p_] := (x^d + y^d)*Sign[x - p]*Sign[y - p];
newAssumptions = {p > 0, p < 1, x > 0, x < 1, y > 0, y < 1, d < 0, d > -1};
Integrate[f[x, y, p], {x, 0, 1}, {y, 0, 1},
Assumptions -> newAssumptions]


Because now it did not need to go to the GenerateConditions code as it was happy as is.

So my guess is that it has to do with the GenerateConditions code, where it changed the form.