The only thing to do is to examine what the response actually is. Change the node to not try to JSON parse the response, and then pass the output to a Debug node. You'll then be able to see what the API is returning, which could be an error message for example.
I receive an empty string.
However if I seperate the flow into 2 seperate flows, they work great. I receive the API token, which I then manually insert into the second flows http request under bearer authentication.
I believe the issue has something to do with setting the token into msg.token, but im not experienced (yet) enough to actually see whats wrong..
Feed the good and failing messages that you feed into the second request into debug nodes, set to Output Complete message. There must be an important difference between the two inputs.
You could also add a node.warn(headers) after you set the headers in second function, to see what the headers you send look like and if token is set correctly.