Updating URL embedded in a form

Hello, my name is Brian and I am based in Senegal. We have been collecting market prices using ODK in Senegal. Data is stored in ODK Aggregate v1.7.1. Recently, we changed the domain name for Aggregate. The submission URL was embedded in the form. We wanted to update the form with the new URL and did the following:
1.) Updated the form with the new URL (replacing the old one)
2.) Retained the same form name and ID
3.) Changed the version

Our hope was that the existing form will be updated with the above changes replacing the old form. However, when trying to load the form to Aggregate, I am getting the following error. Is it possible to update the URL of a form without creating a new one? I would appreciate your help and thanks!
Please note that I can successful load the form with the new URL if I give the form new name/ID.

HTTP Status 500 – Internal Server Error
Type Exception Report

Message Undefined Prefix: odk in org.kxml2.io.KXmlParser@3ccfb3da

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

java.lang.RuntimeException: Undefined Prefix: odk in org.kxml2.io.KXmlParser@3ccfb3da
	org.kxml2.io.KXmlParser.adjustNsp(Unknown Source)
	org.kxml2.io.KXmlParser.parseStartTag(Unknown Source)
	org.kxml2.io.KXmlParser.nextImpl(Unknown Source)
	org.kxml2.io.KXmlParser.nextToken(Unknown Source)
	org.kxml2.kdom.Node.parse(Unknown Source)
	org.kxml2.kdom.Element.parse(Unknown Source)
	org.kxml2.kdom.Node.parse(Unknown Source)
	org.kxml2.kdom.Element.parse(Unknown Source)
	org.kxml2.kdom.Node.parse(Unknown Source)
	org.kxml2.kdom.Element.parse(Unknown Source)
	org.kxml2.kdom.Node.parse(Unknown Source)
	org.kxml2.kdom.Document.parse(Unknown Source)
	org.opendatakit.aggregate.parser.BaseFormParserForJavaRosa.parseXmlToDocument(BaseFormParserForJavaRosa.java:649)
	org.opendatakit.aggregate.parser.BaseFormParserForJavaRosa.<init>(BaseFormParserForJavaRosa.java:414)
	org.opendatakit.aggregate.parser.FormParserForJavaRosa.<init>(FormParserForJavaRosa.java:114)
	org.opendatakit.aggregate.servlet.FormUploadServlet.doPost(FormUploadServlet.java:255)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.opendatakit.common.security.spring.SecurityContextHolderAwareAuthPreservingRequestFilter.doFilter(SecurityContextHolderAwareAuthPreservingRequestFilter.java:66)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.opendatakit.common.security.spring.DigestAuthenticationFilter.doFilter(DigestAuthenticationFilter.java:42)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.opendatakit.common.security.spring.OutOfBandUserFilter.doFilter(OutOfBandUserFilter.java:105)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.opendatakit.common.security.spring.Oauth2ResourceFilter.doFilter(Oauth2ResourceFilter.java:352)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:157)
	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)

Hi @brian1, welcome to the forum!

The error message suggests you have an invalid form.

  1. What tool (include version number) did you use to design the form?
  2. What tool (include version number) did you use to do the conversion to XML?
  3. Can you attach the form to this message?

Thank you very much for your prompt response!
We used Excel 2016 to design the form and xlsform.exe to do the conversion to XML. Unfortunately, I don't have the version for the xlsform.exe but it was installed around 2017. I have attached the form for your review.Fish Market Prices French v4 - URL Updated.xls (168.5 KB)

xlsform.exe is old and no longer supported.

Go to http://opendatakit.org/xlsform and use either the online version which is always up-to-date or download the offline version.

You'll need to name your form something XML safe (e.g., Fish_Market_Prices_French_v4.xls) then it should convert and upload just fine.

Thank you, Yaw. I just did the conversion online and attempted to load the form to Aggregate. I received the following error message:
Please note, as indicated in my first message, that I am updating an existing form and the update is only the submission URL. I have changed the version to today's date. Nothing else is changed on the updated form. Appreciate your help!!

HTTP Status 409 – Conflict
Type Status Report

Message Form Already Exists for this Namespace/Id attribute org.opendatakit.aggregate.exception.ODKFormAlreadyExistsException

Description The request could not be completed due to a conflict with the current state of the target resource.