$Version
(* "14.0.0 for Mac OS X ARM (64-bit) (December 13, 2023)" *)
Clear["Global`*"]
eqns = {
eq1 = a^3*c + c^3*a == (a + (1 - f)*d)^3*b + b^3*(a + (1 - f)*d),
eq2 = g == c - b,
eq3 = (e - d)/(a + d) == g/b};
vars = Variables[Level[eqns, {-1}]]
(* {a, b, c, d, e, f, g} *)
Option 1: Solve for three variables (including d) and disregard unwanted solutions. For example,
sol1a = d -> # & /@ (d /. Solve[eqns, {d, a, b}]);
There are multiple lengthy solutions.
#[sol1a] & /@ {Length, LeafCount}
(* {3, 17664} *)
or,
sol1b = d -> # & /@ (d /. Solve[eqns, {d, b, c}]);
#[sol1b] & /@ {Length, LeafCount}
{6, 2215}
Option 2: Solve for d and eliminate two other variables. For example,
sol2a = Solve[eqns, d, {a, b}];
#[sol2a] & /@ {Length, LeafCount}
(* {3, 17667} *)
or,
sol2b = Solve[eqns, d, {b, c}];
#[sol2b] & /@ {Length, LeafCount}
(* {6, 2221} *)
Option 3: Solve for d and use the option MaxExtraConditions
(sol3 = SolveValues[eqns, d, MaxExtraConditions -> All])

Solveshould not yield the empty set of solutions. For more detailed discussion see e.g. What is the difference between Reduce and Solve?. We can get rid of trivial equationeq2and sethin place ofa + (1 - f)*d. Then useReduce[{a^3 c + a c^3 == b^3 h + b h^3, (-d + e)/(a + d) == (c - b)/ b}, h]– Artes Mar 06 '24 at 11:32Solvenot giving reasonable answers. This post goes in-depth into why this happens. Thanks! – codebpr Mar 06 '24 at 13:02hto to Reduce ordthough? – DansAltamira Mar 06 '24 at 15:08