<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Geoprocessing service gets 'Timeout exceeded' after 3 minutes in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99584#M7715</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Asynchronous processing might be best for longer processes, something to try at-least.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 06 Sep 2020 20:26:33 GMT</pubDate>
    <dc:creator>DavidPike</dc:creator>
    <dc:date>2020-09-06T20:26:33Z</dc:date>
    <item>
      <title>WAB Geoprocessing widget gets 'Timeout exceeded' after 3 minutes</title>
      <link>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99583#M7714</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I've published a geoprocessing service and recently noticed that it times out at 3 minutes.&amp;nbsp; I tried updating maxUsageTime but it had no effect. I inspected the service draft xml document and found no timers set to 180 seconds.&amp;nbsp; How can I prevent this from timing out after 3 minutes?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG __jive_id="506478" class="image-1 jive-image" src="https://community.esri.com/legacyfs/online/506478_pastedImage_1.png" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the python code that creates the service draft.&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;CreateGPSDDraft&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;results&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 dp_ags_gp_rest&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'sd_draft_fn'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 dp_ags_gp_rest&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'title'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 server_type&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'FROM_CONNECTION_FILE'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 connection_file_path&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;AppInfo&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;ags_connect_connection_file&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 copy_data_to_server&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token boolean"&gt;False&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 folder_name&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;AppInfo&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;ags_service_folder&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 summary&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;dp_ags_gp_rest&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'description'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 tags&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;dp&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'tags'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 executionType&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'Synchronous'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 showMessages&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'Info'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 minInstances&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 maxInstances&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;2&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 maxUsageTime&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;20&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;*&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;60&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff;"&gt;I'm running this&amp;nbsp;on&amp;nbsp;ArcPro&amp;nbsp; 2.4.3&amp;nbsp; and Python 3.6.8 and Advanced license.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 06:11:32 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99583#M7714</guid>
      <dc:creator>DonMorrison1</dc:creator>
      <dc:date>2021-12-11T06:11:32Z</dc:date>
    </item>
    <item>
      <title>Re: Geoprocessing service gets 'Timeout exceeded' after 3 minutes</title>
      <link>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99584#M7715</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Asynchronous processing might be best for longer processes, something to try at-least.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 06 Sep 2020 20:26:33 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99584#M7715</guid>
      <dc:creator>DavidPike</dc:creator>
      <dc:date>2020-09-06T20:26:33Z</dc:date>
    </item>
    <item>
      <title>Re: Geoprocessing service gets 'Timeout exceeded' after 3 minutes</title>
      <link>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99585#M7716</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I actually tried that and it didn't work because the service is being called from the ESRI-supplied &lt;A href="https://doc.arcgis.com/en/web-appbuilder/create-apps/widget-geoprocessing.htm"&gt;geoprocessing widget &lt;/A&gt;which apparently does not support asynchronous processing. In any case I would prefer synchronous. What I don't understand is why it is timing out after 3 minutes when I have set the timeout to 10 minutes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG class="image-1 jive-image" src="https://community.esri.com/legacyfs/online/506479_pastedImage_1.png" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 06 Sep 2020 22:28:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99585#M7716</guid>
      <dc:creator>DonMorrison1</dc:creator>
      <dc:date>2020-09-06T22:28:19Z</dc:date>
    </item>
    <item>
      <title>Re: Geoprocessing service gets 'Timeout exceeded' after 3 minutes</title>
      <link>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99586#M7717</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm beginning to think that the timeout is happening on the client (WAB Geoprocessing widget) instead of the the server's geoprocessing REST service.&amp;nbsp; When I run the service directly via an HTTP POST sent to the REST service it does not timeout. It only times out when I run it via the WAB widget.&amp;nbsp; I can't see in the widget code where the timeout value is being set - in any case I'm quite sure I can't do any sort of customization since my web app is being served up in ArcGIS Online.&amp;nbsp; Also, from looking at the Geoprocessing widget code it looks like it should support asynchronous gp services - but I always get a failure pretty much immediately when I try that..... has anybody been able to get that to work?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Sep 2020 16:21:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99586#M7717</guid>
      <dc:creator>DonMorrison1</dc:creator>
      <dc:date>2020-09-07T16:21:12Z</dc:date>
    </item>
    <item>
      <title>Re: WAB Geoprocessing widget gets 'Timeout exceeded' after 3 minutes</title>
      <link>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99587#M7718</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Another update.&amp;nbsp; I found that when switching the GP REST service from synchronous&amp;nbsp; to asynchronous that I had to recreate the WAB geoprocessing widget to get it to realize that the change had taken place - evidently it bakes that in when the widget is created. So now I am able have my WAB geoprocessing widget drive my GP task. In one way it works much better than synchronous because it displays all of the messages output by the tool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However there is still one problem. After the GP tool completes, the widget hangs up with the "Results" progress bar flashing&lt;/P&gt;&lt;P&gt;&lt;IMG class="image-1 jive-image" src="https://community.esri.com/legacyfs/online/506533_pastedImage_1.png" /&gt;&lt;/P&gt;&lt;P&gt;In the browser network trace I see that first the job status of "esriJobSucceeded" is received which triggers a "results" request which comes back with:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier, monospace; font-size: 13px;"&gt;{"error":{"code":400,"extendedCode":-2147467259,"message":"Unable to complete operation.","details":[]}}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I'm quite sure the tool was successful, so I wasn't&amp;nbsp; not sure why this 400 error was being sent and why the results bar won't go away. The server manager logs do not show the 400 error being sent.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;What I eventually found was that the "results" request worked on my tool's 2 input parameters, but failed on the output parameter. The only difference in the parameter definitions in the tool's .pyt file other than the direction was the parameterType. So I changed the parameter type of my output parameter from 'Derived' to 'Optional' and that did the trick.&amp;nbsp; I don't know if this is working as intended&amp;nbsp;- it doesn't seem correct to me, but in the end my WAB widget is working&amp;nbsp; better than ever.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;results &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Parameter&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;
 displayName&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"Results"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 name&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"results"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 datatype&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"String"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 parameterType&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"Optional"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 direction&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"Output"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 06:11:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99587#M7718</guid>
      <dc:creator>DonMorrison1</dc:creator>
      <dc:date>2021-12-11T06:11:34Z</dc:date>
    </item>
    <item>
      <title>Re: WAB Geoprocessing widget gets 'Timeout exceeded' after 3 minutes</title>
      <link>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99588#M7719</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In your code are you setting the parameter e.g. arcpy.SetParameter(your_result, x)?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Sep 2020 19:44:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99588#M7719</guid>
      <dc:creator>DavidPike</dc:creator>
      <dc:date>2020-09-07T19:44:05Z</dc:date>
    </item>
    <item>
      <title>Re: WAB Geoprocessing widget gets 'Timeout exceeded' after 3 minutes</title>
      <link>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99589#M7720</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not exactly like this - I hope what I'm doing is the equivalent:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;def&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;execute&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;self&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; parameters&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; messages&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
 output &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; cv_main&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;clean_and_validate &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;
 parameters&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;valueAsText&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; 
 parameters&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;value&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; 
 parameters&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;2&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;value &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; output 
 &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;parameters[2] is the one with direction="Output".&amp;nbsp; It seems to work that way&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BTW - I actually made two changes to my parameters to get it to work and I'm not sure which one is the key. In addition to changing the 'parameterType' from 'Derived' to 'Optional', I changed the parameter 'name' from 'results' to 'output'.&amp;nbsp; I don't think I have the energy to spend any more time on this to figure it out.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 06:11:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99589#M7720</guid>
      <dc:creator>DonMorrison1</dc:creator>
      <dc:date>2021-12-11T06:11:37Z</dc:date>
    </item>
    <item>
      <title>Re: WAB Geoprocessing widget gets 'Timeout exceeded' after 3 minutes</title>
      <link>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99590#M7721</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;More to see whats under the hood, whats the actual output and tool doing?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Sep 2020 00:11:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99590#M7721</guid>
      <dc:creator>DavidPike</dc:creator>
      <dc:date>2020-09-08T00:11:25Z</dc:date>
    </item>
    <item>
      <title>Re: WAB Geoprocessing widget gets 'Timeout exceeded' after 3 minutes</title>
      <link>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99591#M7722</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The purpose of the WAB widget (hosted on ArcGIS Online) is to perform data cleaning and validation on our geospatial database. So the Geoprocessing widget simply calls the REST service (on our on-premises ArcGIS server) that I created based on code I wrote in a python toolbox. The python code inspects and cleans the various database tables. It logs messages via arcpy.AddMessage.&amp;nbsp; When I ran the service synchronously those messages never got displayed by the widget. But now that I've switched to asynchronous, they do - which I really like.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;IMG class="image-1 jive-image" src="https://community.esri.com/legacyfs/online/506583_pastedImage_1.png" /&gt;&lt;/P&gt;&lt;P&gt;Once the python code has completed its job, it sets the output message as shown above where I assign the string to "parameters[2]". The widget at that point wipes out the previous messages and displays just the output parameter:&lt;/P&gt;&lt;P&gt;&lt;IMG class="image-2 jive-image" src="https://community.esri.com/legacyfs/online/506588_pastedImage_2.png" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So it is now working very well - although I don't understand totally why.&amp;nbsp; BTW - I had a lot of problems republishing the REST service. For instance:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;In ArcPro I could publish only once without restarting. Subsequent attempts did not work or throw an error message&lt;/LI&gt;&lt;LI&gt;It appeared some aspects of the REST specification where cached and I could not change them with a republish. For instance, changing a parameter name or the type (as defined in the toolbox code). Even if I deleted the existing REST service before the republish, the old values persisted. I had to give my REST service a new name for the proper values to&amp;nbsp; be set. Luckily the WAB widget is the only consumer of the service so I'm not worried about breaking anybody else.&lt;/LI&gt;&lt;LI&gt;When I switched my REST service from synchronous to asynchronous, the WAB widget did not detect that. I had to delete the widget and create a new one.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again for putting me on the track of using the asynchronous service - it really does work better than what I was doing before.&lt;BR style="color: #000000; background-color: #f5f2f0;" /&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Sep 2020 17:22:26 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/wab-geoprocessing-widget-gets-timeout-exceeded/m-p/99591#M7722</guid>
      <dc:creator>DonMorrison1</dc:creator>
      <dc:date>2020-09-08T17:22:26Z</dc:date>
    </item>
  </channel>
</rss>

