The authorization endpoint took the plain method, and assumed it when a challenge came without a method (RFC 7636's default), for every client but stateless ones, though the metadata lists only S256. With plain the challenge is the verifier, so it protects nothing. Codes issued with plain before an upgrade still verify.