The problem was caused by occasional network issues.
I solved it by
- Adding a
timeoutto axios calls; for example:axios.get(url, {timeout: 18000})for 18 seconds timeout. This is the main solution. - Keeping a timestamp of when the last http request was started and check it regularly with
setInterval(). If it was not tolerable, I starts a new “loop”. And also add handling if the number of long polling “loop” is too many and terminate the extra. I did this when I haven’t found the culprit.
Based on my observation, the actual time spent before exception is thrown might be several seconds (up to 5 seconds) longer than timeout duration given to axios.
solved Once in a while, axios http long polling not returning at all