Since you've edited your post while I was writing mine:
The description of your custom character (or the name of one of your attached facial expressions) probably contains some kind of letter that breaks JSON formatting or OpenRouter just doesn't like somehow.