Please find the below link for my resolution. It was definitely the double encoded path params. It is caused by the axios open api generator I was using. When I swapped out with a plain http client, I had no trouble with gateway serving my endpoint. At this stage, I haven't got the bottom of why axios generated client code is double encoding my path param. However, it was clearly the reason.
https://github.com/spring-cloud/spring-cloud-gateway/issues/3637#issuecomment-2540423503