Just to follow-up on this, it seems that earlier in the output I had the following.
Caused by: java.lang.IllegalArgumentException: Illegal base64 character 2d
at java.base/java.util.Base64$Decoder.decode0(Base64.java:743)
at java.base/java.util.Base64$Decoder.decode(Base64.java:535)
at java.base/java.util.Base64$Decoder.decode(Base64.java:558)
at fish.payara.microprofile.jwtauth.eesecurity.JwtPublicKeyStore.parseJwks(JwtPublicKeyStore.java:270)
at fish.payara.microprofile.jwtauth.eesecurity.JwtPublicKeyStore.createPublicKeyFromJWKS(JwtPublicKeyStore.java:247)
at fish.payara.microprofile.jwtauth.eesecurity.JwtPublicKeyStore.createPublicKey(JwtPublicKeyStore.java:225)
and that in turn seems to be because i was inlining my public key pem directly into mp.jwt.verify.publickey=-----BEGIN PUBLIC KEY-----MIIBI....
because the character 2d is the hyphen I'm guessing the payara code base is perhaps confusing the fact
that PEM format uses tradition base64 while JWT uses base64url encoding and they differ in whether hyphen is allowed.
I switched to using mp.jwt.verify.publickey.location=/my.pem and that didn't work either, even though it is top of my classpath.
Finally this did work: mp.jwt.verify.publickey.location=my.pem