Callback URL problems when trying to subscribe with EventSub

That would suggest the call never got to your script.

Whats the full output from the Twitch CLI?

Or you can update your script to force set the content type.

If you got a 5xx or a 4xx that can return a text/html Or if you are behind cloudflare cloudflare may have interferred.

Personally I use twitch_misc/receive.js at main · BarryCarlyon/twitch_misc · GitHub

But you can do

res.setHeader('content-type', 'text/plain');
res.send(encodeURIComponent(req.body.challenge));

To force set the content type, but if you got text/html with a charset suggest something else might be going on