Expand my Community achievements bar.

Enhance your AEM Assets & Boost Your Development: [AEM Gems | June 19, 2024] Improving the Developer Experience with New APIs and Events

error while saving Persistant Query


Level 1


    <head><title>409 Conflict</title></head>
        <p>Cannot serve request to /graphql/persist.json/my-project/Persons in org.apache.sling.jcr.webdav.impl.servlets.SimpleWebDavServlet</p>
        <h3>Request Progress:</h3>
      0 TIMER_START{Request Processing}
      1 COMMENT timer_end format is {&lt;elapsed microseconds&gt;,&lt;timer name&gt;} &lt;optional message&gt;
      5 LOG Method=PUT, PathInfo=null
      6 TIMER_START{handleSecurity}
   1324 TIMER_END{1316,handleSecurity} authenticator org.apache.sling.auth.core.impl.SlingAuthenticator@51c5993c returns true
   1612 TIMER_START{ResourceResolution}
   1682 TIMER_END{70,ResourceResolution} URI=/graphql/persist.json/my-project/Persons resolves to Resource=ServletResource, servlet=com.adobe.aem.graphql.impl.servlet.PersistedQueryServlet, path=/graphql/persist
   1691 LOG Resource Path Info: SlingRequestPathInfo: path=&apos;/graphql/persist&apos;, selectorString=&apos;null&apos;, extension=&apos;json&apos;, suffix=&apos;/my-project/Persons&apos;
   1691 TIMER_START{ServletResolution}
   1694 TIMER_START{resolveServlet(/graphql/persist)}
   1698 LOG Will not look for a servlet at /graphql/persist.servlet as it is not in the list of allowed paths
   1715 TIMER_END{20,resolveServlet(/graphql/persist)} Using servlet org.apache.sling.jcr.webdav.impl.servlets.SimpleWebDavServlet
   1717 TIMER_END{25,ServletResolution} URI=/graphql/persist.json/my-project/Persons handled by Servlet=org.apache.sling.jcr.webdav.impl.servlets.SimpleWebDavServlet
   1721 LOG Applying Requestfilters
   1725 LOG Calling filter: com.adobe.granite.resourceresolverhelper.impl.ResourceResolverHelperImpl
   1731 LOG Calling filter: org.apache.sling.security.impl.ContentDispositionFilter
   1737 LOG Calling filter: com.adobe.granite.csrf.impl.CSRFFilter
   2031 LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter
   2034 LOG Calling filter: com.adobe.granite.httpcache.impl.InnerCacheFilter
   2040 LOG Calling filter: org.apache.sling.rewriter.impl.RewriterFilter
   2043 LOG Calling filter: com.adobe.cq.history.impl.HistoryRequestFilter
   2047 LOG Calling filter: com.day.cq.wcm.core.impl.WCMRequestFilter
   2055 LOG Calling filter: com.adobe.acs.commons.redirects.filter.RedirectFilter
   2065 LOG Calling filter: com.adobe.fd.core.security.internal.CurrentUserServiceImpl
   2316 LOG Calling filter: com.adobe.cq.wcm.core.components.internal.servlets.CoreFormHandlingServlet
   2320 LOG Calling filter: com.adobe.granite.optout.impl.OptOutFilter
   2329 LOG Calling filter: com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet
   2332 LOG Calling filter: com.adobe.cq.social.commons.cors.CORSAuthenticationFilter
   2336 LOG Calling filter: com.adobe.livecycle.dsc.clientsdk.internal.ResourceResolverHolderFilter
   2340 LOG Calling filter: org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter
   2350 LOG Calling filter: com.adobe.livecycle.content.appcontext.impl.AppContextFilter
   2355 LOG Calling filter: com.trp.aem.iinvestor.piweb.core.filters.LoggingFilter
   2361 LOG Calling filter: com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter
   2365 LOG Calling filter: com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl
   2489 LOG Calling filter: com.adobe.granite.rest.assets.impl.AssetContentDispositionFilter
   2492 LOG Calling filter: com.adobe.granite.requests.logging.impl.RequestLoggerImpl
   2496 LOG Calling filter: com.adobe.granite.rest.impl.servlet.ApiResourceFilter
   2658 LOG Calling filter: com.day.cq.dam.core.impl.servlet.ActivityRecordHandler
   2666 LOG Calling filter: com.day.cq.dam.core.impl.assetlinkshare.AdhocAssetShareAuthHandler
   2671 LOG Calling filter: com.adobe.cq.social.ugcbase.security.impl.SaferSlingPostServlet
   2674 LOG Calling filter: com.day.cq.wcm.core.impl.warp.TimeWarpFilter
   2682 LOG Applying Componentfilters
   2684 LOG Calling filter: com.day.cq.personalization.impl.TargetComponentFilter
   2687 LOG Calling filter: com.day.cq.wcm.core.impl.page.PageLockFilter
   2690 LOG Calling filter: com.day.cq.wcm.core.impl.WCMComponentFilter
   2783 LOG Calling filter: com.day.cq.wcm.core.impl.WCMDebugFilter
   2791 TIMER_START{org.apache.sling.jcr.webdav.impl.servlets.SimpleWebDavServlet#0}
   3315 LOG Applying Error filters
   3319 LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter
   3322 LOG Calling filter: org.apache.sling.rewriter.impl.RewriterFilter
   3335 TIMER_START{handleError:status=409}
   3698 TIMER_END{362,handleError:status=409} Using handler /libs/sling/servlet/errorhandler/default.jsp
   5239 LOG Found processor for post processing ProcessorConfiguration: {contentTypes=[text/html], order=-1, active=true, valid=true, processErrorResponse=true, pipeline=(generator=Config(type=htmlparser, config=JcrPropertyMap [node=Node[NodeDelegate{tree=/apps/trp-commons/config/rewriter/default/generator-htmlparser: { jcr:primaryType = nt:unstructured, includeTags = [A, /A, IMG, AREA, FORM, BASE, LINK, SCRIPT, BODY, /BODY]}}], values={jcr:primaryType=nt:unstructured, includeTags=[Ljava.lang.String;@697de7b0}]), transformers=(Config(type=linkchecker, config={}), Config(type=mobile, config=JcrPropertyMap [node=Node[NodeDelegate{tree=/apps/trp-commons/config/rewriter/default/transformer-mobile: { jcr:primaryType = nt:unstructured, component-optional = true}}], values={jcr:primaryType=nt:unstructured, component-optional=true}]), Config(type=mobiledebug, config=JcrPropertyMap [node=Node[NodeDelegate{tree=/apps/trp-commons/config/rewriter/default/transformer-mobiledebug: { jcr:primaryType = nt:unstructured, component-optional = true}}], values={jcr:primaryType=nt:unstructured, component-optional=true}]), Config(type=contentsync, config=JcrPropertyMap [node=Node[NodeDelegate{tree=/apps/trp-commons/config/rewriter/default/transformer-contentsync: { jcr:primaryType = nt:unstructured, component-optional = true}}], values={jcr:primaryType=nt:unstructured, component-optional=true}]), Config(type=versioned-clientlibs, config={}), serializer=Config(type=htmlwriter, config={}))}
   5374 TIMER_END{5373,Request Processing} Dumping SlingRequestProgressTracker Entries

        <address>ApacheSling/2.7 (jetty/9.4.49.v20220914, OpenJDK 64-Bit Server VM 11.0.22, Linux 5.15.0-102-generic amd64)</address>



AEM Version: 6.5.17

Getting above error , when I do "save query" on graphiql editor.

Am I missing anything to install or configure?





Topics help categorize Community content and increase your ability to discover relevant content.

4 Replies


Community Advisor

Hi @SreenivasuluPu 


If you are getting error while accessing the above endpoint.json call then make sure that you have below configurations in system/console/configMgr









If all configurations are intact then your endpoint call should work. 




Level 3

Hi @SreenivasuluPu 

Can you check the properties of the my-project configuration  in the Configuration Browser?
The checkbox GraphQL Persistent Queries should be checked.




Level 10

Hi @SreenivasuluPu ,

The error you're encountering (409 Conflict) typically indicates that there is an issue with the request being made, often due to conflicting or invalid data. In the context of AEM and GraphQL, this error could occur for various reasons. Here are some steps you can take to troubleshoot and resolve the issue:

  1. Check Request Payload: Review the payload of the request you're making to the GraphQL endpoint. Ensure that it conforms to the expected format and that all required fields are provided. Look for any potential conflicts or inconsistencies in the data being submitted.

  2. Review Server Logs: Examine the logs on the AEM server to see if there are any additional details or error messages that could provide insight into the cause of the conflict. Look for any stack traces or error messages that may help pinpoint the issue.

  3. Verify Permissions: Ensure that the user making the request has the necessary permissions to perform the operation (i.e., saving a query). Check the user's permissions in AEM to confirm that they have the appropriate access rights.

  4. Check Resource Paths: Verify that the resource paths used in the query are valid and accessible. Ensure that the paths referenced in the query exist and that the user has the necessary permissions to access them.

  5. Inspect Request Headers: Review the headers included in the request to ensure that they are correctly configured and that they meet any requirements set by the GraphQL server or AEM. Look for any headers that may be missing or incorrectly formatted.

  6. Update AEM Version: Consider updating to the latest version of AEM if possible, as newer versions often include bug fixes and improvements that may address issues like this one. Check the release notes for any relevant fixes or enhancements related to GraphQL or query saving functionality.

  7. Consult Documentation: Refer to the official documentation for AEM and GraphQL to ensure that you are using the API correctly and following best practices. Look for any specific guidelines or recommendations that may apply to your use case.

  8. Seek Support: If you are unable to resolve the issue on your own, consider reaching out to Adobe support or consulting with experienced developers who may have encountered similar issues before.

By following these steps and carefully reviewing the details of the error, you should be able to identify and address the underlying cause of the conflict when saving a query in the GraphQL editor in AEM.



@SreenivasuluPu Did you find the suggestions helpful? Please let us know if more information is required. Otherwise, please mark the answer as correct for posterity. If you have found out solution yourself, please share it with the community.

Kautuk Sahni