Our IVR application experiences several bad fetch timeout issues each day, always when trying to call the same aspx page. I have put logs in the aspx.cs code, and it looks like our code is running in about 1 second. After we exit our .aspx.cs code (we write the next vxml form to a asp literal field), we see a timeout occur quite a bit later. We are using the default 30 second timeout. Sometimes we get the timeout without ever seeing the .aspx.cs file logs come out, which seems to imply that it never reached the aspx.cs code during the timeout.
Here are the vxml and the error (I blanked out the CC and calling # with asterisks)...
<form id="ConfirmPayment">
<block>
<prompt>
%PaymentValidationProcessingPrompt%
</prompt>
<submit namelist="varRoutingNum varCheckingAcctNum varCreditCardNum varExpDate varSecurityCode varZipCode" next="PaymentValidate.aspx" />
</block>
</form>
error ********** 58 [08/Dec/2010:08:01:43 -0500] 8773572517 000011;058;1291812577 Error fetching document http://billq.cashcyclesolutions.com/CCS ... Code=37829 due to Operation timed out with 0 out of -1 bytes received
error 8652332169 58 [08/Dec/2010:08:01:43 -0500] 8773572517 000011;058;1291812577 DocumentParser::FetchBuffer - could not open URL: PaymentValidate.aspx
error 8652332169 58 [08/Dec/2010:08:01:43 -0500] 8773572517 000011;058;1291812577 DocumentParser::FetchDocument - exiting with error result 2
error 8652332169 58 [08/Dec/2010:08:01:43 -0500] 8773572517 000011;058;1291812577 errno: 203 uri PaymentValidate.aspx
Any suggestions? We see this error on about 1 in every 3 or 4 calls.
We've Moved! Please visit our new and improved forum over at our new portal: https://portal.plumvoice.com/hc/en-us/community/topics
Frequent Timeout Errors
Re: Frequent Timeout Errors
Here is the full set of forms that we were processing...
- <vxml version="2.0">
<property name="inputmodes" value="dtmf" />
<property name="timeout" value="3s" />
<property name="interdigittimeout" value="4s" />
- <catch event="nomatch">
<reprompt />
</catch>
- <catch event="noinput">
<reprompt />
</catch>
- <catch event="error">
<prompt>A system error has occurred. Returning to the main manu.</prompt>
<goto next="MainMenu.aspx" />
</catch>
<var name="varRoutingNum" />
<var name="varCheckingAcctNum" />
<var name="varCreditCardNum" />
<var name="varExpDate" />
<var name="varSecurityCode" />
<var name="varZipCode" />
- <menu id="ChoosePaymentAccountType">
<prompt>To pay by credit card, press 1. To pay by checking account, press 2. To go back to the main menu, press 8.</prompt>
<choice dtmf="1" next="#EnterCreditCardNum" />
<choice dtmf="2" next="#EnterRoutingNum" />
<choice dtmf="8" next="MainMenu.aspx" />
</menu>
- <form id="EnterRoutingNum">
- <field name="routingNum" type="digits?length=9">
<prompt>Please enter your 9 digit bank transit number, followed by the pound sign. Your bank transit number is the first set of digits at the bottom of your check.</prompt>
- <filled>
You entered
- <prompt>
- <prosody rate="+20%">
- <say-as type="acronym">
<value expr="routingNum" />
</say-as>
</prosody>
</prompt>
<assign name="varRoutingNum" expr="routingNum" />
<goto next="#RightOrWrongRoutingNum" />
</filled>
</field>
</form>
- <menu id="RightOrWrongRoutingNum">
<prompt>If this is correct, press 1. To reenter your bank transit number, press 2. To go back to the main menu, press 8.</prompt>
<choice dtmf="1" next="#EnterCheckingAcctNum" />
<choice dtmf="2" next="#EnterRoutingNum" />
<choice dtmf="8" next="MainMenu.aspx" />
</menu>
- <form id="EnterCheckingAcctNum">
- <field name="checkingAcctNum" type="digits">
<prompt>Please enter your checking account number, followed by the pound sign. Your checking account number is the second set of digits at the bottom of your check.</prompt>
- <filled>
You entered
- <prompt>
- <prosody rate="+20%">
- <say-as type="acronym">
<value expr="checkingAcctNum" />
</say-as>
</prosody>
</prompt>
<assign name="varCheckingAcctNum" expr="checkingAcctNum" />
<goto next="#RightOrWrongCheckingAcctNum" />
</filled>
</field>
</form>
- <menu id="RightOrWrongCheckingAcctNum">
<prompt>If this is correct, press 1, To reenter your checking account number, press 2. To go back to the main menu, press 8.</prompt>
<choice dtmf="1" next="#ConfirmPayment" />
<choice dtmf="2" next="#EnterCheckingAcctNum" />
<choice dtmf="8" next="MainMenu.aspx" />
</menu>
- <form id="EnterCreditCardNum">
- <field name="creditCardNum" type="digits?minlength=15;maxlength=16">
- <prompt>
Please enter your Visa
<break time="1ms" />
or Mastercard number, followed by the pound sign.
</prompt>
- <filled>
You entered
- <prompt>
- <prosody rate="+20%">
- <say-as type="acronym">
<value expr="creditCardNum" />
</say-as>
</prosody>
</prompt>
<assign name="varCreditCardNum" expr="creditCardNum" />
<goto next="#RightOrWrongCreditCardNum" />
</filled>
</field>
</form>
- <menu id="RightOrWrongCreditCardNum">
<prompt>If this is correct, press 1. To reenter your card number, press 2. To go back to the main menu, press 8.</prompt>
<choice dtmf="1" next="#EnterExpirationDate" />
<choice dtmf="2" next="#EnterCreditCardNum" />
<choice dtmf="8" next="MainMenu.aspx" />
</menu>
- <form id="EnterExpirationDate">
- <field name="expirationDate" type="digits?minlength=4;maxlength=4">
<prompt>Please enter the expiration date of your credit card, followed by the pound sign. Use 2 digits for the month and 2 digits for the year. For example, for March 2012, enter 0312.</prompt>
- <filled>
You entered
- <prompt>
- <prosody rate="+20%">
- <say-as type="acronym">
<value expr="expirationDate" />
</say-as>
</prosody>
</prompt>
<assign name="varExpDate" expr="expirationDate" />
<goto next="#RightOrWrongExpDate" />
</filled>
</field>
</form>
- <menu id="RightOrWrongExpDate">
<prompt>If this is correct, press 1. To reenter the expiration date, press 2. To go back to the main menu, press 8.</prompt>
<choice dtmf="1" next="#EnterSecurityCode" />
<choice dtmf="2" next="#EnterExpirationDate" />
<choice dtmf="8" next="MainMenu.aspx" />
</menu>
- <form id="EnterSecurityCode">
- <field name="securityCode" type="digits?minlength=3;maxlength=4">
<prompt>Please enter the 3 digit security code from the back of your card.</prompt>
- <filled>
You entered
- <prompt>
- <prosody rate="+20%">
- <say-as type="acronym">
<value expr="securityCode" />
</say-as>
</prosody>
</prompt>
<assign name="varSecurityCode" expr="securityCode" />
<goto next="#RightOrWrongSecurityCode" />
</filled>
</field>
</form>
- <menu id="RightOrWrongSecurityCode">
<prompt>If this is correct, press 1, To reenter your security code, press 2. To go back to the main menu, press 8.</prompt>
<choice dtmf="1" next="#ConfirmPayment" />
<choice dtmf="2" next="#EnterSecurityCode" />
<choice dtmf="8" next="MainMenu.aspx" />
</menu>
- <form id="EnterZipCode">
- <field name="zipCode" type="digits?minlength=5;maxlength=5">
<prompt>%ZipCodePrompt%</prompt>
- <filled>
You entered
- <prompt>
- <prosody rate="+20%">
- <say-as type="acronym">
<value expr="zipCode" />
</say-as>
</prosody>
</prompt>
<assign name="varZipCode" expr="zipCode" />
<goto next="#RightOrWrongZipCode" />
</filled>
</field>
</form>
- <menu id="RightOrWrongZipCode">
<prompt>If this is correct, press 1, To reenter your zipcode, press 2. To go back to the main menu, press 8.</prompt>
<choice dtmf="1" next="#ConfirmPayment" />
<choice dtmf="2" next="#EnterZipCode" />
<choice dtmf="8" next="MainMenu.aspx" />
</menu>
- <form id="ConfirmPayment">
- <block>
<prompt>Please wait while we validate your payment information.</prompt>
<submit namelist="varRoutingNum varCheckingAcctNum varCreditCardNum varExpDate varSecurityCode varZipCode" next="PaymentValidate.aspx" />
</block>
</form>
</vxml>
- <vxml version="2.0">
<property name="inputmodes" value="dtmf" />
<property name="timeout" value="3s" />
<property name="interdigittimeout" value="4s" />
- <catch event="nomatch">
<reprompt />
</catch>
- <catch event="noinput">
<reprompt />
</catch>
- <catch event="error">
<prompt>A system error has occurred. Returning to the main manu.</prompt>
<goto next="MainMenu.aspx" />
</catch>
<var name="varRoutingNum" />
<var name="varCheckingAcctNum" />
<var name="varCreditCardNum" />
<var name="varExpDate" />
<var name="varSecurityCode" />
<var name="varZipCode" />
- <menu id="ChoosePaymentAccountType">
<prompt>To pay by credit card, press 1. To pay by checking account, press 2. To go back to the main menu, press 8.</prompt>
<choice dtmf="1" next="#EnterCreditCardNum" />
<choice dtmf="2" next="#EnterRoutingNum" />
<choice dtmf="8" next="MainMenu.aspx" />
</menu>
- <form id="EnterRoutingNum">
- <field name="routingNum" type="digits?length=9">
<prompt>Please enter your 9 digit bank transit number, followed by the pound sign. Your bank transit number is the first set of digits at the bottom of your check.</prompt>
- <filled>
You entered
- <prompt>
- <prosody rate="+20%">
- <say-as type="acronym">
<value expr="routingNum" />
</say-as>
</prosody>
</prompt>
<assign name="varRoutingNum" expr="routingNum" />
<goto next="#RightOrWrongRoutingNum" />
</filled>
</field>
</form>
- <menu id="RightOrWrongRoutingNum">
<prompt>If this is correct, press 1. To reenter your bank transit number, press 2. To go back to the main menu, press 8.</prompt>
<choice dtmf="1" next="#EnterCheckingAcctNum" />
<choice dtmf="2" next="#EnterRoutingNum" />
<choice dtmf="8" next="MainMenu.aspx" />
</menu>
- <form id="EnterCheckingAcctNum">
- <field name="checkingAcctNum" type="digits">
<prompt>Please enter your checking account number, followed by the pound sign. Your checking account number is the second set of digits at the bottom of your check.</prompt>
- <filled>
You entered
- <prompt>
- <prosody rate="+20%">
- <say-as type="acronym">
<value expr="checkingAcctNum" />
</say-as>
</prosody>
</prompt>
<assign name="varCheckingAcctNum" expr="checkingAcctNum" />
<goto next="#RightOrWrongCheckingAcctNum" />
</filled>
</field>
</form>
- <menu id="RightOrWrongCheckingAcctNum">
<prompt>If this is correct, press 1, To reenter your checking account number, press 2. To go back to the main menu, press 8.</prompt>
<choice dtmf="1" next="#ConfirmPayment" />
<choice dtmf="2" next="#EnterCheckingAcctNum" />
<choice dtmf="8" next="MainMenu.aspx" />
</menu>
- <form id="EnterCreditCardNum">
- <field name="creditCardNum" type="digits?minlength=15;maxlength=16">
- <prompt>
Please enter your Visa
<break time="1ms" />
or Mastercard number, followed by the pound sign.
</prompt>
- <filled>
You entered
- <prompt>
- <prosody rate="+20%">
- <say-as type="acronym">
<value expr="creditCardNum" />
</say-as>
</prosody>
</prompt>
<assign name="varCreditCardNum" expr="creditCardNum" />
<goto next="#RightOrWrongCreditCardNum" />
</filled>
</field>
</form>
- <menu id="RightOrWrongCreditCardNum">
<prompt>If this is correct, press 1. To reenter your card number, press 2. To go back to the main menu, press 8.</prompt>
<choice dtmf="1" next="#EnterExpirationDate" />
<choice dtmf="2" next="#EnterCreditCardNum" />
<choice dtmf="8" next="MainMenu.aspx" />
</menu>
- <form id="EnterExpirationDate">
- <field name="expirationDate" type="digits?minlength=4;maxlength=4">
<prompt>Please enter the expiration date of your credit card, followed by the pound sign. Use 2 digits for the month and 2 digits for the year. For example, for March 2012, enter 0312.</prompt>
- <filled>
You entered
- <prompt>
- <prosody rate="+20%">
- <say-as type="acronym">
<value expr="expirationDate" />
</say-as>
</prosody>
</prompt>
<assign name="varExpDate" expr="expirationDate" />
<goto next="#RightOrWrongExpDate" />
</filled>
</field>
</form>
- <menu id="RightOrWrongExpDate">
<prompt>If this is correct, press 1. To reenter the expiration date, press 2. To go back to the main menu, press 8.</prompt>
<choice dtmf="1" next="#EnterSecurityCode" />
<choice dtmf="2" next="#EnterExpirationDate" />
<choice dtmf="8" next="MainMenu.aspx" />
</menu>
- <form id="EnterSecurityCode">
- <field name="securityCode" type="digits?minlength=3;maxlength=4">
<prompt>Please enter the 3 digit security code from the back of your card.</prompt>
- <filled>
You entered
- <prompt>
- <prosody rate="+20%">
- <say-as type="acronym">
<value expr="securityCode" />
</say-as>
</prosody>
</prompt>
<assign name="varSecurityCode" expr="securityCode" />
<goto next="#RightOrWrongSecurityCode" />
</filled>
</field>
</form>
- <menu id="RightOrWrongSecurityCode">
<prompt>If this is correct, press 1, To reenter your security code, press 2. To go back to the main menu, press 8.</prompt>
<choice dtmf="1" next="#ConfirmPayment" />
<choice dtmf="2" next="#EnterSecurityCode" />
<choice dtmf="8" next="MainMenu.aspx" />
</menu>
- <form id="EnterZipCode">
- <field name="zipCode" type="digits?minlength=5;maxlength=5">
<prompt>%ZipCodePrompt%</prompt>
- <filled>
You entered
- <prompt>
- <prosody rate="+20%">
- <say-as type="acronym">
<value expr="zipCode" />
</say-as>
</prosody>
</prompt>
<assign name="varZipCode" expr="zipCode" />
<goto next="#RightOrWrongZipCode" />
</filled>
</field>
</form>
- <menu id="RightOrWrongZipCode">
<prompt>If this is correct, press 1, To reenter your zipcode, press 2. To go back to the main menu, press 8.</prompt>
<choice dtmf="1" next="#ConfirmPayment" />
<choice dtmf="2" next="#EnterZipCode" />
<choice dtmf="8" next="MainMenu.aspx" />
</menu>
- <form id="ConfirmPayment">
- <block>
<prompt>Please wait while we validate your payment information.</prompt>
<submit namelist="varRoutingNum varCheckingAcctNum varCreditCardNum varExpDate varSecurityCode varZipCode" next="PaymentValidate.aspx" />
</block>
</form>
</vxml>
Re: Frequent Timeout Errors
Hi dmalta,
As this appears to be an inconsistent issue (happens 1 out of every 4 calls), we would recommend that you add a "fetchtimeout" attribute in your <submit> tag and increase the timeout value to 60 seconds. For more information on the <submit> tag, you can view documentation here: http://www.plumvoice.com/docs/dev/voicexml:tags:submit
We would also recommend that you check on your web servers and check for any server-side errors that may have caused this issue.
Regards,
Plum Support
As this appears to be an inconsistent issue (happens 1 out of every 4 calls), we would recommend that you add a "fetchtimeout" attribute in your <submit> tag and increase the timeout value to 60 seconds. For more information on the <submit> tag, you can view documentation here: http://www.plumvoice.com/docs/dev/voicexml:tags:submit
We would also recommend that you check on your web servers and check for any server-side errors that may have caused this issue.
Regards,
Plum Support
Plum Support
http://www.plumvoice.com
http://www.plumvoice.com
Re: Frequent Timeout Errors
Hi,
Increasing the timeout doeesn't seem to help. We have 2 customers using our IVR system through different phone numbers, and one sees the problem frequently and the other only sees it occasionally. The only difference between the two is the one that fails frequently passes back an additional parameter for the zip code. This submit call passes in several parameters - could the number or size of parameters affect anything?
Thanks
Increasing the timeout doeesn't seem to help. We have 2 customers using our IVR system through different phone numbers, and one sees the problem frequently and the other only sees it occasionally. The only difference between the two is the one that fails frequently passes back an additional parameter for the zip code. This submit call passes in several parameters - could the number or size of parameters affect anything?
Thanks
Re: Frequent Timeout Errors
Hi,
Regarding this issue, you might want to try some of the following suggestions to resolve this timeout error of "Operation timed out with 0 out of -1 bytes received":
Possibly, it might be a configuration issue on your web server in how it handles persistent HTTP/1.1 connections. You should consult your web server configuration guide and look into disabling persistent HTTP connections.
Also, you could try checking the firewall settings on your end. If you use a firewall between your web server and the Internet, the firewall might be keeping the persistent connection open to the IVR even though the server-side connection has already been closed.
This old forum topic may also help you in resolving this issue: http://support.plumvoice.com/viewtopic.php?t=767
Regards,
Plum Support
Regarding this issue, you might want to try some of the following suggestions to resolve this timeout error of "Operation timed out with 0 out of -1 bytes received":
Possibly, it might be a configuration issue on your web server in how it handles persistent HTTP/1.1 connections. You should consult your web server configuration guide and look into disabling persistent HTTP connections.
Also, you could try checking the firewall settings on your end. If you use a firewall between your web server and the Internet, the firewall might be keeping the persistent connection open to the IVR even though the server-side connection has already been closed.
This old forum topic may also help you in resolving this issue: http://support.plumvoice.com/viewtopic.php?t=767
Regards,
Plum Support
Plum Support
http://www.plumvoice.com
http://www.plumvoice.com