If it’s a retry of the same request it should have the same key. If it’s not a retry, a different one. I don’t see the issue.
If the client sends the same key but a different payload that’s a 400 or 409 in my eyes.