<?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: Rebuild Spatial Index for Hosted Feature layers in Publishing and Managing Services Questions</title>
    <link>https://community.esri.com/t5/publishing-and-managing-services-questions/rebuild-spatial-index-for-hosted-feature-layers/m-p/1680285#M1524</link>
    <description>&lt;P&gt;&lt;SPAN&gt;&lt;!--   ScriptorStartFragment   --&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;from &lt;SPAN&gt;arcgis&lt;SPAN&gt;.gis &lt;SPAN&gt;import &lt;SPAN&gt;GIS&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;from &lt;SPAN&gt;arcgis&lt;SPAN&gt;.features &lt;SPAN&gt;import &lt;SPAN&gt;FeatureLayerCollection&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;# 1) Sign in (use a user with admin or owner privileges)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;gis &lt;SPAN&gt;= &lt;SPAN&gt;GIS&lt;SPAN&gt;(&lt;SPAN&gt;"&lt;A href="https://your-portal-url/portal" target="_blank" rel="noopener"&gt;https://your-portal-url/portal"&lt;SPAN&gt;, &lt;SPAN&gt;"admin_user"&lt;SPAN&gt;, &lt;SPAN&gt;"admin_password"&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;# 2) Get the Feature Layer item (hosted)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;item &lt;SPAN&gt;= &lt;SPAN&gt;gis&lt;SPAN&gt;.content&lt;SPAN&gt;.get&lt;SPAN&gt;(&lt;SPAN&gt;"ITEM_ID_OF_HOSTED_FEATURE_LAYER"&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;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;flc &lt;SPAN&gt;= &lt;SPAN&gt;FeatureLayerCollection&lt;SPAN&gt;.fromitem&lt;SPAN&gt;(&lt;SPAN&gt;item&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;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;# 3) Loop sublayers, find spatial index name, and rebuild it&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;for &lt;SPAN&gt;lyr &lt;SPAN&gt;in &lt;SPAN&gt;flc&lt;SPAN&gt;.layers&lt;SPAN&gt;:&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;# each is a FeatureLayer&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;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;idxs &lt;SPAN&gt;= &lt;SPAN&gt;getattr&lt;SPAN&gt;(&lt;SPAN&gt;lyr&lt;SPAN&gt;.properties&lt;SPAN&gt;, &lt;SPAN&gt;"indexes"&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;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;# find spatial index for this sublayer&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;shape_idx &lt;SPAN&gt;= &lt;SPAN&gt;next&lt;SPAN&gt;(&lt;SPAN&gt;(&lt;SPAN&gt;i &lt;SPAN&gt;for &lt;SPAN&gt;i &lt;SPAN&gt;in &lt;SPAN&gt;idxs &lt;SPAN&gt;if &lt;SPAN&gt;i&lt;SPAN&gt;.get&lt;SPAN&gt;(&lt;SPAN&gt;"fields"&lt;SPAN&gt;) &lt;SPAN&gt;=&lt;SPAN&gt;= &lt;SPAN&gt;"Shape"&lt;SPAN&gt;)&lt;SPAN&gt;, &lt;SPAN&gt;None&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;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;if &lt;SPAN&gt;not &lt;SPAN&gt;shape_idx&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;print&lt;SPAN&gt;(&lt;SPAN&gt;f&lt;SPAN&gt;"No spatial index found for layer {lyr.properties.name}; skipping."&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;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;continue&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;payload &lt;SPAN&gt;= &lt;SPAN&gt;{&lt;SPAN&gt;"indexes"&lt;SPAN&gt;: &lt;SPAN&gt;[&lt;SPAN&gt;{&lt;SPAN&gt;"name"&lt;SPAN&gt;: &lt;SPAN&gt;shape_idx&lt;SPAN&gt;[&lt;SPAN&gt;"name"&lt;SPAN&gt;]&lt;SPAN&gt;, &lt;SPAN&gt;"fields"&lt;SPAN&gt;: &lt;SPAN&gt;"Shape"&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;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;# 4) Call updateDefinition on the Admin endpoint via the Python API wrapper&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;result &lt;SPAN&gt;= &lt;SPAN&gt;lyr&lt;SPAN&gt;.manager&lt;SPAN&gt;.update_definition&lt;SPAN&gt;(&lt;SPAN&gt;payload&lt;SPAN&gt;)&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;# returns {"success": true} on success&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;DIV class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;print&lt;SPAN&gt;(&lt;SPAN&gt;lyr&lt;SPAN&gt;.properties&lt;SPAN&gt;.name&lt;SPAN&gt;, &lt;SPAN&gt;result&lt;SPAN&gt;)&lt;!--   ScriptorEndFragment   --&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;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Tue, 27 Jan 2026 17:33:51 GMT</pubDate>
    <dc:creator>ZenMasterZeke</dc:creator>
    <dc:date>2026-01-27T17:33:51Z</dc:date>
    <item>
      <title>Rebuild Spatial Index for Hosted Feature layers</title>
      <link>https://community.esri.com/t5/publishing-and-managing-services-questions/rebuild-spatial-index-for-hosted-feature-layers/m-p/1680280#M1523</link>
      <description>&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;We are running ArcGIS Enterprise 11.5 and I am looking to automate the process of rebuilding spatial indexes for hosted feature layers.&lt;/P&gt;&lt;P&gt;I am aware that this can be done manually through the Portal UI by going to the hosted feature layer item → Settings → Feature Layer (Hosted) → Indexes, where the spatial index can be rebuilt. Since this functionality exists and is supported in the Portal interface, I assume it is calling some internal operation.&lt;/P&gt;&lt;P&gt;However, I have not been able to find any documented or supported way to trigger the same spatial index rebuild programmatically using the REST API, ArcGIS API for Python, or a geoprocessing tool. I did come across the following community post, but it is unclear whether it applies only to ArcGIS Online or if it is relevant to ArcGIS Enterprise as well:&lt;BR /&gt;&lt;A href="https://community.esri.com/t5/arcgis-online-questions/automate-task-to-rebuild-spatial-index-of-hosted/m-p/1247358" target="_blank"&gt;https://community.esri.com/t5/arcgis-online-questions/automate-task-to-rebuild-spatial-index-of-hosted/m-p/1247358&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Has anyone identified a supported method to automate the same spatial index rebuild that is available in the Portal UI for hosted feature layers in ArcGIS Enterprise? Or is this currently only possible through manual interaction in the Portal?&lt;/P&gt;&lt;P&gt;Any insights or confirmation would be greatly appreciated. Thank you.&lt;/P&gt;</description>
      <pubDate>Tue, 27 Jan 2026 17:22:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/publishing-and-managing-services-questions/rebuild-spatial-index-for-hosted-feature-layers/m-p/1680280#M1523</guid>
      <dc:creator>MariusVerdes</dc:creator>
      <dc:date>2026-01-27T17:22:34Z</dc:date>
    </item>
    <item>
      <title>Re: Rebuild Spatial Index for Hosted Feature layers</title>
      <link>https://community.esri.com/t5/publishing-and-managing-services-questions/rebuild-spatial-index-for-hosted-feature-layers/m-p/1680285#M1524</link>
      <description>&lt;P&gt;&lt;SPAN&gt;&lt;!--   ScriptorStartFragment   --&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;from &lt;SPAN&gt;arcgis&lt;SPAN&gt;.gis &lt;SPAN&gt;import &lt;SPAN&gt;GIS&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;from &lt;SPAN&gt;arcgis&lt;SPAN&gt;.features &lt;SPAN&gt;import &lt;SPAN&gt;FeatureLayerCollection&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;# 1) Sign in (use a user with admin or owner privileges)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;gis &lt;SPAN&gt;= &lt;SPAN&gt;GIS&lt;SPAN&gt;(&lt;SPAN&gt;"&lt;A href="https://your-portal-url/portal" target="_blank" rel="noopener"&gt;https://your-portal-url/portal"&lt;SPAN&gt;, &lt;SPAN&gt;"admin_user"&lt;SPAN&gt;, &lt;SPAN&gt;"admin_password"&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;# 2) Get the Feature Layer item (hosted)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;item &lt;SPAN&gt;= &lt;SPAN&gt;gis&lt;SPAN&gt;.content&lt;SPAN&gt;.get&lt;SPAN&gt;(&lt;SPAN&gt;"ITEM_ID_OF_HOSTED_FEATURE_LAYER"&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;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;flc &lt;SPAN&gt;= &lt;SPAN&gt;FeatureLayerCollection&lt;SPAN&gt;.fromitem&lt;SPAN&gt;(&lt;SPAN&gt;item&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;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;# 3) Loop sublayers, find spatial index name, and rebuild it&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;for &lt;SPAN&gt;lyr &lt;SPAN&gt;in &lt;SPAN&gt;flc&lt;SPAN&gt;.layers&lt;SPAN&gt;:&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;# each is a FeatureLayer&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;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;idxs &lt;SPAN&gt;= &lt;SPAN&gt;getattr&lt;SPAN&gt;(&lt;SPAN&gt;lyr&lt;SPAN&gt;.properties&lt;SPAN&gt;, &lt;SPAN&gt;"indexes"&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;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;# find spatial index for this sublayer&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;shape_idx &lt;SPAN&gt;= &lt;SPAN&gt;next&lt;SPAN&gt;(&lt;SPAN&gt;(&lt;SPAN&gt;i &lt;SPAN&gt;for &lt;SPAN&gt;i &lt;SPAN&gt;in &lt;SPAN&gt;idxs &lt;SPAN&gt;if &lt;SPAN&gt;i&lt;SPAN&gt;.get&lt;SPAN&gt;(&lt;SPAN&gt;"fields"&lt;SPAN&gt;) &lt;SPAN&gt;=&lt;SPAN&gt;= &lt;SPAN&gt;"Shape"&lt;SPAN&gt;)&lt;SPAN&gt;, &lt;SPAN&gt;None&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;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;if &lt;SPAN&gt;not &lt;SPAN&gt;shape_idx&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;print&lt;SPAN&gt;(&lt;SPAN&gt;f&lt;SPAN&gt;"No spatial index found for layer {lyr.properties.name}; skipping."&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;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;continue&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;payload &lt;SPAN&gt;= &lt;SPAN&gt;{&lt;SPAN&gt;"indexes"&lt;SPAN&gt;: &lt;SPAN&gt;[&lt;SPAN&gt;{&lt;SPAN&gt;"name"&lt;SPAN&gt;: &lt;SPAN&gt;shape_idx&lt;SPAN&gt;[&lt;SPAN&gt;"name"&lt;SPAN&gt;]&lt;SPAN&gt;, &lt;SPAN&gt;"fields"&lt;SPAN&gt;: &lt;SPAN&gt;"Shape"&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;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;# 4) Call updateDefinition on the Admin endpoint via the Python API wrapper&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;result &lt;SPAN&gt;= &lt;SPAN&gt;lyr&lt;SPAN&gt;.manager&lt;SPAN&gt;.update_definition&lt;SPAN&gt;(&lt;SPAN&gt;payload&lt;SPAN&gt;)&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;# returns {"success": true} on success&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;DIV class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN&gt;print&lt;SPAN&gt;(&lt;SPAN&gt;lyr&lt;SPAN&gt;.properties&lt;SPAN&gt;.name&lt;SPAN&gt;, &lt;SPAN&gt;result&lt;SPAN&gt;)&lt;!--   ScriptorEndFragment   --&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;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 27 Jan 2026 17:33:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/publishing-and-managing-services-questions/rebuild-spatial-index-for-hosted-feature-layers/m-p/1680285#M1524</guid>
      <dc:creator>ZenMasterZeke</dc:creator>
      <dc:date>2026-01-27T17:33:51Z</dc:date>
    </item>
    <item>
      <title>Re: Rebuild Spatial Index for Hosted Feature layers</title>
      <link>https://community.esri.com/t5/publishing-and-managing-services-questions/rebuild-spatial-index-for-hosted-feature-layers/m-p/1681423#M1526</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/116479"&gt;@ZenMasterZeke&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;Thanks a lot for the example, it helped a lot.&lt;BR /&gt;&lt;BR /&gt;What I managed to do is to convert it to check for all hosted services in the Enterprise Portal and rebuild the spatial index for those with Sync disabled, please see it below:&lt;BR /&gt;&lt;BR /&gt;"from arcgis.gis import GIS&lt;BR /&gt;from arcgis.features import FeatureLayerCollection&lt;BR /&gt;import datetime&lt;/P&gt;&lt;P&gt;# Configuration&lt;BR /&gt;PORTAL_URL = &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;A href="https://your-portal-url/portal" target="_blank" rel="noopener nofollow noreferrer"&gt;https://your-portal-url/portal&lt;/A&gt;"&lt;BR /&gt;USERNAME = "admin_user"&lt;BR /&gt;PASSWORD = "admin_password"&lt;/P&gt;&lt;P&gt;print(f"Connecting to {PORTAL_URL}...")&lt;BR /&gt;gis = GIS(PORTAL_URL, USERNAME, PASSWORD, verify_cert=False)&lt;BR /&gt;print(f"Connected as: {gis.properties.user.username}\n")&lt;/P&gt;&lt;P&gt;# Search for hosted feature services (excluding views)&lt;BR /&gt;print("Searching for hosted feature services...")&lt;BR /&gt;items = gis.content.search(&lt;BR /&gt;query="type:'Feature Service' AND typekeywords:Hosted AND -typekeywords:'View Service'",&lt;BR /&gt;max_items=1000,&lt;BR /&gt;outside_org=False&lt;BR /&gt;)&lt;/P&gt;&lt;P&gt;print(f"Found {len(items)} hosted feature services\n")&lt;BR /&gt;print("="*80)&lt;/P&gt;&lt;P&gt;# Tracking&lt;BR /&gt;services_checked = 0&lt;BR /&gt;layers_rebuilt = 0&lt;BR /&gt;services_skipped_sync = 0&lt;BR /&gt;layers_skipped_no_index = 0&lt;BR /&gt;layers_failed = []&lt;/P&gt;&lt;P&gt;for item in items:&lt;BR /&gt;services_checked += 1&lt;BR /&gt;print(f"\n[{services_checked}/{len(items)}] {item.title} (Owner: {item.owner})")&lt;BR /&gt;&lt;BR /&gt;try:&lt;BR /&gt;flc = FeatureLayerCollection.fromitem(item)&lt;BR /&gt;&lt;BR /&gt;# Check sync&lt;BR /&gt;if flc.properties.get('syncEnabled') or 'Sync' in flc.properties.get('capabilities', ''):&lt;BR /&gt;print(" &lt;span class="lia-unicode-emoji" title=":next_track_button:"&gt;⏭&lt;/span&gt; SKIPPED: Sync enabled")&lt;BR /&gt;services_skipped_sync += 1&lt;BR /&gt;continue&lt;BR /&gt;&lt;BR /&gt;# Process each spatial layer&lt;BR /&gt;for lyr in flc.layers:&lt;BR /&gt;layer_name = lyr.properties.get('name', 'Unknown')&lt;BR /&gt;print(f" └─ Layer: {layer_name}")&lt;BR /&gt;&lt;BR /&gt;# Get indexes from layer properties&lt;BR /&gt;indexes = lyr.properties.get("indexes", [])&lt;BR /&gt;&lt;BR /&gt;# Find the spatial index - case-insensitive check for "shape"&lt;BR /&gt;spatial_idx = next((idx for idx in indexes if idx.get("fields", "").lower() == "shape"), None)&lt;BR /&gt;&lt;BR /&gt;if not spatial_idx:&lt;BR /&gt;print(f" ⚠ No spatial index found, skipping")&lt;BR /&gt;layers_skipped_no_index += 1&lt;BR /&gt;continue&lt;BR /&gt;&lt;BR /&gt;# Rebuild by passing existing index definition back&lt;BR /&gt;try:&lt;BR /&gt;payload = {"indexes": [{"name": spatial_idx["name"], "fields": spatial_idx["fields"]}]}&lt;BR /&gt;result = lyr.manager.update_definition(payload)&lt;BR /&gt;&lt;BR /&gt;if result.get('success'):&lt;BR /&gt;print(f" ✓ Spatial index '{spatial_idx['name']}' rebuilt successfully")&lt;BR /&gt;layers_rebuilt += 1&lt;BR /&gt;else:&lt;BR /&gt;print(f" ✗ FAILED: {result}")&lt;BR /&gt;layers_failed.append(f"{item.title}/{layer_name}: {result}")&lt;BR /&gt;&lt;BR /&gt;except Exception as e:&lt;BR /&gt;print(f" ✗ EXCEPTION: {e}")&lt;BR /&gt;layers_failed.append(f"{item.title}/{layer_name}: {e}")&lt;BR /&gt;&lt;BR /&gt;except Exception as e:&lt;BR /&gt;print(f" ! ERROR: {e}")&lt;BR /&gt;layers_failed.append(f"{item.title}: {e}")&lt;/P&gt;&lt;P&gt;# Summary&lt;BR /&gt;print("\n" + "="*80)&lt;BR /&gt;print("SUMMARY")&lt;BR /&gt;print("="*80)&lt;BR /&gt;print(f"Services checked: {services_checked}")&lt;BR /&gt;print(f"Layers rebuilt: {layers_rebuilt}")&lt;BR /&gt;print(f"Services skipped (sync): {services_skipped_sync}")&lt;BR /&gt;print(f"Layers skipped (no index): {layers_skipped_no_index}")&lt;BR /&gt;print(f"Failed: {len(layers_failed)}")&lt;/P&gt;&lt;P&gt;if layers_failed:&lt;BR /&gt;print("\nFailed operations:")&lt;BR /&gt;for failed in layers_failed:&lt;BR /&gt;print(f" - {failed}")&lt;/P&gt;&lt;P&gt;print(f"\nCompleted: {datetime.datetime.now()}")"&lt;/P&gt;</description>
      <pubDate>Mon, 02 Feb 2026 12:28:11 GMT</pubDate>
      <guid>https://community.esri.com/t5/publishing-and-managing-services-questions/rebuild-spatial-index-for-hosted-feature-layers/m-p/1681423#M1526</guid>
      <dc:creator>MariusVerdes</dc:creator>
      <dc:date>2026-02-02T12:28:11Z</dc:date>
    </item>
  </channel>
</rss>

