This does not occur on the main branch, only 2.3.x. I plan to run a git-bisect later today. ```python pd.set_option("infer_string", True) ser = pd.Series(["a", np.nan, "a", "a"]) print(ser.replace({"a": "b"})) # 0 b # 1 NaN # 2 a # 3 b # dtype: str ```