I'm attempting to transfer Survey123 data from ArcGIS Online to our Enterprise Portal. I have been attempting to use the "Clone_Survey_Content_Full_Folder" script linked here. It successfully transfers all data except the survey form itself. The error(s) it fails at are at the bottom of this post.
Line 14, column 61 of _replace_form's xml_string is the red line in this screenshot:
Pasting the contents of xml_string into an online XML validator confirms an error at 14:61. I assume ElementTree wants the </label> to be to the right of <label class> or to not exist at all, because doing either in said XML validator shifts to a new error at line 22:71, also caused by a an out-of-place </label>.
I'm hoping this is something resolved by changing software versions or something similarly easy.
ArcGIS Pro/ArcMap not installed locally
ArcGIS Enterprise/Portal 10.8.1
Python 3.9.5 64-bit
ArcGIS API 1.8.5.post3 installed via pip
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\arcgis\_impl\common\_clone.py", line 3104, in update_form
payload['form'] = self._replace_form(form, field_mapping)
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\arcgis\_impl\common\_clone.py", line 2944, in _replace_form
xml = ElementTree.fromstring(xml_string)
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\xml\etree\ElementTree.py", line 1347, in XML
parser.feed(text)
xml.etree.ElementTree.ParseError: mismatched tag: line 14, column 61
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\arcgis\_impl\common\_clone.py", line 3006, in clone
self.update_form(self.target, new_item, self._clone_mapping)
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\arcgis\_impl\common\_clone.py", line 3181, in update_form
raise Exception("Failed to update {0} {1}: {2}".format(new_item['type'], new_item['title'], str(ex)))
Exception: Failed to update Form IA-OA Sampling Form V2: mismatched tag: line 14, column 61
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\workspace\Clone_Surveys\Clone_Survey_Content_Full_Folder-mod.py", line 70, in <module>
cloned_items = target.content.clone_items(items=fldr_items, folder=fldr['title'])
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\arcgis\gis\__init__.py", line 5517, in clone_items
return deep_cloner.clone()
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\arcgis\_impl\common\_clone.py", line 813, in clone
results = executor.submit(self._clone, executor).result()
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\concurrent\futures\_base.py", line 445, in result
return self.__get_result()
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\concurrent\futures\_base.py", line 390, in __get_result
raise self._exception
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\concurrent\futures\thread.py", line 52, in run
result = self.fn(*self.args, **self.kwargs)
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\arcgis\_impl\common\_clone.py", line 800, in _clone
raise ex
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\concurrent\futures\thread.py", line 52, in run
result = self.fn(*self.args, **self.kwargs)
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\arcgis\_impl\common\_clone.py", line 3013, in clone
raise _ItemCreateException("Failed to create {0} {1}: {2}".format(original_item['type'], original_item['title'], str(ex)), new_item)
arcgis._impl.common._clone._ItemCreateException: ('Failed to create Form IA-OA Sampling Form V2: Failed to update Form IA-OA Sampling Form V2: mismatched tag: line 14, column 61', <Item title:"IA-OA Sampling Form V2" type:Form owner:the_owner_of_portal_account>)
Solved! Go to Solution.
Downgrading to Python 3.6.0 resolved this issue. I attempted this after finding a blog post discussing survey cloning, then finding a related Github page.
Does anyone have any pointers in the right direction? This seems like an uncommon error and I haven't seen anyone else encounter it yet.
Downgrading to Python 3.6.0 resolved this issue. I attempted this after finding a blog post discussing survey cloning, then finding a related Github page.