FlightXML2 requires stAuth.refreshWSDL=true to work again

We have been experiencing connection issues randomly and often lately. The API is failing to return flight status and therefore I need to add a couple lines of script that “refreshes the WSDL” in order to get it working again.
Can you tell me why this keeps happening? We are using ColdFusion 2016 on Windows 2008 R2, and I have been using this script

<cfscript>
stAuth = structNew();
stAuth.username = "XXXXXXX";
stAuth.password = "XXXXXXX";

/* Uncomment to CLEAR WSDL if stops working
stAuth.wsversion=1;
stAuth.refreshWSDL=true; */

ws = createObject("webservice", "http://flightxml.flightaware.com/soap/FlightXML2/wsdl", stAuth);

stFlightInfoEx = structNew();
stFlightInfoEx.ident = "#flight_number#";
stFlightInfoEx.howMany = 1;
stFlightInfoEx.offset = 0;
aFlightInfoExStruct = ws.FlightInfoEx(stFlightInfoEx);
</cfscript>

We have not altered our WSDL for FlightXML2, so there is likely some other issue in your ColdFusion setup that is causing its cached interface bindings to fail in some way.

If you haven’t seen it yet, this web page describes a little about what that command does, and it explains why you should not leave that option enabled for longer than necessary: CF8 Hidden Gem: Refreshing Web Service WSDL and CF proxy/stub with new RefreshWSDL option - Charlie Arehart - Server Troubleshooting

Can you explain what error is returned when it fails?

Perhaps you could make your interface check for that specific exception, and reinvoke the last request again with refreshWSDL=true if it has been more than a few minutes since the last time refreshWSDL was attempted?