# Bug report When you call a function with incorrect key arguments, you get a TypeError. But it is not always so with the `_replace()` method of a named tuple class created by `collections.namedtuple()`. ```pyshell >>> from collections import namedtuple >>> P = namedtuple('P', 'x y') >>> p = P(1, 2) >>> p._replace(z=3) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/serhiy/py/cpython/Lib/collections/__init__.py", line 460, in _replace raise ValueError(f'Got unexpected field names: {list(kwds)!r}') ValueError: Got unexpected field names: ['z'] ``` It is not even consistent with constructor which raises TypeError: ```pyshell >>> P(x=1, y=2, z=3) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: P.__new__() got an unexpected keyword argument 'z' ``` I think that `_replace()` also should raise TypeError for unexpected keyword arguments. cc @rhettinger <!-- gh-linked-prs --> ### Linked PRs * gh-110299 <!-- /gh-linked-prs -->