Could be a problem with coolant temp sensor staying in the cold range, this may not set a code and would cause a rich mixture, could cause some cat odor, another possiblity here, but less likely than the cat. A scan will reveal if the temp sensor is accurate.