<?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: Can I handle service errors myself within SOI? in ArcGIS Enterprise Extensibility Questions</title>
    <link>https://community.esri.com/t5/arcgis-enterprise-extensibility-questions/can-i-handle-service-errors-myself-within-soi/m-p/854603#M177</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;see link:&amp;nbsp;&lt;A href="https://enterprise.arcgis.com/en/sdk/latest/windows/67e3565d-2a00-4e0a-9534-59b9ce415d40.html#SOIError"&gt;SOI Error&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; background-color: #ffffff; font-size: 11.52px;"&gt;The SOI request handler will wrap this exception and let the server handle this exception. It hides the detailed error message in the response but automatically logs the message in server logs. This approach works better for failures that help the server administrator troubleshoot and are not intended to be revealed to the client applications.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 30 Jun 2020 09:53:18 GMT</pubDate>
    <dc:creator>nicogis</dc:creator>
    <dc:date>2020-06-30T09:53:18Z</dc:date>
    <item>
      <title>Can I handle service errors myself within SOI?</title>
      <link>https://community.esri.com/t5/arcgis-enterprise-extensibility-questions/can-i-handle-service-errors-myself-within-soi/m-p/854600#M174</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When users calls applyEdits on our FeatureService, and get's something wrong with the request - it just returns "unable to complete operation". Is it possible, to somehow get the detailed error (from SOI), so I could change the response, and append detailed error message? I know - detailed message is logged in the ArcGIS server logs, but that doesn't help, when the user is doing something, and I want to return detailed error to the user myself!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Jun 2020 06:25:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-enterprise-extensibility-questions/can-i-handle-service-errors-myself-within-soi/m-p/854600#M174</guid>
      <dc:creator>MarisSamats</dc:creator>
      <dc:date>2020-06-11T06:25:17Z</dc:date>
    </item>
    <item>
      <title>Re: Can I handle service errors myself within SOI?</title>
      <link>https://community.esri.com/t5/arcgis-enterprise-extensibility-questions/can-i-handle-service-errors-myself-within-soi/m-p/854601#M175</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;public&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;byte&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;HandleRESTRequest&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;string&lt;/SPAN&gt; Capabilities&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;string&lt;/SPAN&gt; resourceName&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;string&lt;/SPAN&gt; operationName&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
            &lt;SPAN class="keyword token"&gt;string&lt;/SPAN&gt; operationInput&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;string&lt;/SPAN&gt; outputFormat&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;string&lt;/SPAN&gt; requestProperties&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;out&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;string&lt;/SPAN&gt; responseProperties&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
        &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
            &lt;SPAN class="keyword token"&gt;try&lt;/SPAN&gt;
            &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;

                responseProperties &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;null&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
                _serverLog&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;LogMessage&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ServerLogger&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;msgType&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;infoStandard&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; _soiName &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;".HandleRESTRequest()"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                    &lt;SPAN class="number token"&gt;200&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"Request received in Server Object Interceptor for handleRESTRequest"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

                &lt;SPAN class="keyword token"&gt;try&lt;/SPAN&gt;
                &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
                    IServerEnvironmentEx se4 &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; _restSOIHelper&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;ServerEnvironment &lt;SPAN class="keyword token"&gt;as&lt;/SPAN&gt; IServerEnvironmentEx&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
                    IEnumServerDirectoryInfo dirInfos &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; se4&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;GetServerDirectoryInfos&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;as&lt;/SPAN&gt; IEnumServerDirectoryInfo&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
                    dirInfos&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;Reset&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
                    IServerDirectoryInfo2 dirInfo &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; dirInfos&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;Next&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;as&lt;/SPAN&gt; IServerDirectoryInfo2&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
                    &lt;SPAN class="keyword token"&gt;string&lt;/SPAN&gt; _PathSystem &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;null&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
                    &lt;SPAN class="keyword token"&gt;while&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;dirInfo &lt;SPAN class="operator token"&gt;!=&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;null&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
                    &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
                        &lt;SPAN class="keyword token"&gt;var&lt;/SPAN&gt; dinfo2 &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; dirInfo &lt;SPAN class="keyword token"&gt;as&lt;/SPAN&gt; IServerDirectoryInfo2&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
                        &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;null&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;!=&lt;/SPAN&gt; dinfo2 &lt;SPAN class="operator token"&gt;&amp;amp;&amp;amp;&lt;/SPAN&gt; dinfo2&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Type &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; esriServerDirectoryType&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;esriSDTypeSystem&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
                        &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
                            _PathSystem &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; dinfo2&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Path&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
                            &lt;SPAN class="keyword token"&gt;break&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
                        &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
                        dirInfo &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; dirInfos&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;Next&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;as&lt;/SPAN&gt; IServerDirectoryInfo2&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
                    &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
                &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
                &lt;SPAN class="keyword token"&gt;catch&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

                &lt;SPAN class="comment token"&gt;// Find the correct delegate to forward the request too&lt;/SPAN&gt;
                IRESTRequestHandler restRequestHandler &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; _restSOIHelper&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;FindRequestHandlerDelegate&lt;SPAN class="operator token"&gt;&amp;lt;&lt;/SPAN&gt;IRESTRequestHandler&lt;SPAN class="operator token"&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
                &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;restRequestHandler &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;null&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
                    &lt;SPAN class="keyword token"&gt;throw&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;new&lt;/SPAN&gt; &lt;SPAN class="token class-name"&gt;RestErrorException&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"Service handler not found"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

                &lt;SPAN class="keyword token"&gt;var&lt;/SPAN&gt; a &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; restRequestHandler&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;HandleRESTRequest&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;
                        Capabilities&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; resourceName&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; operationName&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; operationInput&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                        outputFormat&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; requestProperties&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;out&lt;/SPAN&gt; responseProperties&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

                &lt;SPAN class="comment token"&gt;//"{\"error\":{\"code\":500,\"message\":\"Unable to complete operation.\",\"details\":[\"No edits ('adds', 'updates', 'deletes', or 'attachment edits') were specified.\"]}}";&lt;/SPAN&gt;
                &lt;SPAN class="keyword token"&gt;string&lt;/SPAN&gt; json &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; System&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Text&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Encoding&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;UTF8&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;GetString&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;a&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

                &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;errorinjson&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
                &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
                    &lt;SPAN class="comment token"&gt;// here if you have error change 'message' in json string&lt;/SPAN&gt;
                    

                    &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; System&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Text&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Encoding&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;UTF8&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;GetBytes&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;json&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
                &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
                &lt;SPAN class="keyword token"&gt;else&lt;/SPAN&gt;
                    &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; restRequestHandler&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;HandleRESTRequest&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;
                        Capabilities&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; resourceName&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; operationName&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; operationInput&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
                        outputFormat&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; requestProperties&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;out&lt;/SPAN&gt; responseProperties&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
            &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
            &lt;SPAN class="keyword token"&gt;catch&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token class-name"&gt;RestErrorException&lt;/SPAN&gt; e&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
            &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
                responseProperties &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"{\"Content-Type\":\"text/plain;charset=utf-8\"}"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
                &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; System&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Text&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Encoding&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;UTF8&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;GetBytes&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;e&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Message&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
            &lt;SPAN class="punctuation token"&gt;}&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;/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;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;/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;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;you can write similar code&amp;nbsp;&lt;/P&gt;&lt;P&gt;for filter requests interested you see also operationname == 'applyEdits' , capabilites == 'Create,Query,Update,Delete,Uploads...', resourceName == 'layers/xxx' ect...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 10:33:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-enterprise-extensibility-questions/can-i-handle-service-errors-myself-within-soi/m-p/854601#M175</guid>
      <dc:creator>nicogis</dc:creator>
      <dc:date>2021-12-12T10:33:29Z</dc:date>
    </item>
    <item>
      <title>Re: Can I handle service errors myself within SOI?</title>
      <link>https://community.esri.com/t5/arcgis-enterprise-extensibility-questions/can-i-handle-service-errors-myself-within-soi/m-p/854602#M176</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you for your answer. But all I get in the response is&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;CODE&gt;{"error":{"code":400,"message":"Unable to complete operation.","details":[]}}&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;In example:&lt;BR /&gt;In the SOI handler:&lt;/P&gt;&lt;P&gt;&lt;CODE&gt; IRESTRequestHandler restRequestHandler = _restSOIHelper.FindRequestHandlerDelegate(); &lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE&gt;if (restRequestHandler == null) return null; &lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE&gt;var result = restRequestHandler.HandleRESTRequest( Capabilities, resourceName, operationName, operationInput, outputFormat, requestProperties, out responseProperties); &lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE&gt;var resultText = Encoding.UTF8.GetString(result);&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE&gt;return result;&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;I make an invalid request to query - WHERE OBJECTID IN ()&lt;BR /&gt;In the resultText - all I see is&amp;nbsp;&lt;SPAN&gt;{"error":{"code":400,"message":"Unable to complete operation.","details":[]}}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;(I attached to the process, and I see it while debugging)&lt;BR /&gt;In ArcGIS logs, I can see the details;&amp;nbsp;&lt;SPAN style="color: #505051; background-color: #e5edf4; font-size: 12px;"&gt;An invalid where clause or definition expression has been requested: "OBJECTID IN ()"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;Why is the details always empty?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Jun 2020 09:00:53 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-enterprise-extensibility-questions/can-i-handle-service-errors-myself-within-soi/m-p/854602#M176</guid>
      <dc:creator>MarisSamats</dc:creator>
      <dc:date>2020-06-29T09:00:53Z</dc:date>
    </item>
    <item>
      <title>Re: Can I handle service errors myself within SOI?</title>
      <link>https://community.esri.com/t5/arcgis-enterprise-extensibility-questions/can-i-handle-service-errors-myself-within-soi/m-p/854603#M177</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;see link:&amp;nbsp;&lt;A href="https://enterprise.arcgis.com/en/sdk/latest/windows/67e3565d-2a00-4e0a-9534-59b9ce415d40.html#SOIError"&gt;SOI Error&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; background-color: #ffffff; font-size: 11.52px;"&gt;The SOI request handler will wrap this exception and let the server handle this exception. It hides the detailed error message in the response but automatically logs the message in server logs. This approach works better for failures that help the server administrator troubleshoot and are not intended to be revealed to the client applications.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Jun 2020 09:53:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-enterprise-extensibility-questions/can-i-handle-service-errors-myself-within-soi/m-p/854603#M177</guid>
      <dc:creator>nicogis</dc:creator>
      <dc:date>2020-06-30T09:53:18Z</dc:date>
    </item>
  </channel>
</rss>

