I created a Curve 448 key and then tried to remove the expiration date from the encryption subkey.
$ gpg --version gpg (GnuPG) 2.4.6-beta4 libgcrypt 1.11.0 [...] $ gpg -k 448 pub ed448 2024-09-23 [SC] [expires: 2027-09-23] 1DE1960C29F97E6762C4EA341820DAAC045579921E0F30567354CCC69FD42A1D uid [ultimate] Curve 448 <curve448@example.net> sub cv448 2024-09-23 [E] [expires: 2027-09-23] $ gpg -k --with-colons 448 pub:u:448:22:1DE1960C29F97E67:1727082581:::u:::scESC:::::ed448:8::0: fpr:::::::::1DE1960C29F97E6762C4EA341820DAAC045579921E0F30567354CCC69FD42A1D: uid:u::::1727165853::7170574583A99E1E74380AAB96448841A5253C33::Curve 448 <curve448@example.net>::::::::::0: sub:u:448:18:C4B4474450015DC3:1727082581:1821693600:::::e:::::cv448:8: fpr:::::::::C4B4474450015DC3F84033F2C4A264D932E7801AA01EA6E53BCB685CCDEEB2A1: $ gpg --quick-set-expire 1DE1960C29F97E6762C4EA341820DAAC045579921E0F30567354CCC69FD42A1D never C4B4474450015DC3F84033F2C4A264D932E7801AA01EA6E53BCB685CCDEEB2A1 gpg: subkey "C4B4474450015DC3F84033F2C4A264D932E7801AA01EA6E53BCB685CCDEEB2A1" not found