HTTP Request Node stuck on requesting, causes flow to Hang

I have node-red installed on Home Assistant, with a flow that takes mqtt events, processes them, then goes to a secondary system to fetch and image and finally sends all the information to ntfy via http-request node.

I have 3 http-request nodes in my flow, and they are now randomly getting stuck on "requesting". Attempting to open the node gives me a "Failed to load node credentials".
Reloading the webpage simply hangs.

Even with logging on trace, there is nothing that shows why it is hanging.
After a while the HACS addon does seem to restart:

s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service nginx: stopping
[18:21:30] INFO: Service NGINX exited with code 0 (by signal 0)

I have found by individually isolating each node in the flow, that this only starts occurring when the last http-request node is attached to the rest. This, somehow, causes the first or second http-request nodes to start acting up

Try deleting then reconstructing the http headers between request nodes,

From the sidebar help text

Using multiple HTTP Request nodes

In order to use more than one of these nodes in the same flow, care must be taken with the msg.headers property. The first node will set this property with the response headers. The next node will then use those headers for its request - this is not usually the right thing to do. If msg.headers property is left unchanged between nodes, it will be ignored by the second node. To set custom headers, msg.headers should first be deleted or reset to an empty object: {}.

P.s. Welcome to the forum.

[edit]
Without seeing your flow there is not much more to be said , we would be simply guessing.

This is not something I considered, thanks! However unfortunately, it seems I have already accidentally prevented this issue.

All my pre request functions have some form of:

msg.headers = {
    ...
};

Also this should not cause them to hang right? I could understand the request failing, but these simply freeze, and take node-red with them.

The part that concerns me most is that if I unlink the last http-request, the other nodes start behaving properly. I find it odd that a node down the chain can cause upstream problems

All the node use the same underlying http request library so it is possible to confuse the later nodes.
please post an example flow causing the issue.

I made my own subflow wrapper around http request node, mostly because I needed a retry mechanic and robust handling of exceptions and errors. But another feature I added was a checkbox to remove headers on output. In almost all cases I faced the return headers are useless.