Agree with what @
Spartarus says.
another cause could be leaking,cracked header or leak near primary 02 sensor. The 02 sensor then sees fresh air, ie detects lean condition especially at lower rpm, the ecu then compensated by adding sh1t tones of fuel using the fuel trims and you end up actually running rearly rich (usually indicated by high positive long term fuel trims like 20% plus), but the 02 sensor still gets bursts of fresh air so ecu keeps adding fuel.
As we only have one 02 sensor for fueling all four cylinders will run rich.
seen this happen a lot with guys changing to aftermarket header but could still happen with stock header if crack leak developes and some 02 sensors have been cross threaded from factory