Expand my Community achievements bar.

Submissions are now open for the 2026 Adobe Experience Maker Awards.
SOLVED

URL model.json changes not reflecting on domain name

Avatar

Level 5

Hi All,

 

I have a component in which we have added a new tab for some configurations.

The component has @exporter annotation in the Sling Model to export the properties in the JSON.

 

They are available and visible on the URL - https://author-p123456-0000001.adobeaemcloud.com/content/projectA/en/home-page.model.json?wcmmode=di... 

But on publishing the page the properties are not visible on https://projectA.com/en.home-page-model.json

 

In the dispatcher we are doing the below - 

# Deny unsafe content
/0105 { /type "deny" /method "GET" /url "*/fr.json" }
/0106 { /type "deny" /method "GET" /url "*/en.json" }
/0107 { /type "deny" /method "GET" /url "*/jcr:content.json" }
/0108 { /type "deny" /url "/libs/granite/repobrowser" }

But this should have no impact on the above URLs.

 

I have tried purging the cache of the URL from Akamai but no success there.

Any help on this would be appreciated @SantoshSai@Rohan_Garg

 

BR, 

Nagesh

1 Accepted Solution

Avatar

Correct answer by
Level 10

To rule out the cache as a potential cause of the issue, it is advisable to invalidate both the dispatcher and CDN caches. Direct access (Add an IP Allow List) to the publish instance would be the easiest method in this case.

prop.rules.hierarchical=[
    "/content/projectA/path/to/home-page=/content/projectA/en/home-page.model.json"
]


If the content is still not reflecting the latest updates, I suggest checking whether the content related to the page has been correctly replicated. You can do this by either accessing the CRXDE console or using the infinity selector (*.infinity.json or *.-1.json), provided that it is not restricted by dispatcher rules.

View solution in original post

5 Replies

Avatar

Level 10

hi @NageshRaja,

In your provided dispatcher rules, you have deny rules for certain selectors, but you have not explicitly allowed requests for the relevant ones. The dispatcher is restrictive by default, meaning it will block any requests that are not explicitly permitted.

To resolve this, you need to add an allow rule specifically for the requests on your site content path. For instance:

/0064 {
  /type "allow"
  /path "/content/projectA/*"
  /method "GET"
  /selectors "model"
  /extension "json"
}


Additionally, please check the dispatcher and web server access and error logs to determine if the requests are being blocked or denied. This will help confirm whether the dispatcher is the cause of the issue.

Furthermore, try accessing the relevant URL directly on the publish instance (bypassing the dispatcher) to verify if the content is served there. This will help you ascertain whether it’s a dispatcher issue or a problem with content replication on the publish instance.

Avatar

Level 5

Hi @giuseppebag, thank you for the reply!

There is already a rule for json as shown below - 

/0011 { /type "allow" /method "GET" /extension "json" /path "/content/*" }

Moreover, the URL on domain name is not blocked - its allowed but not reflecting the content as in author.

 

Our publish servers are not publicly accessible even on AEM Cloud. There has to be a manual IP allowlist which is currently full hence not able to access that.

Avatar

Correct answer by
Level 10

To rule out the cache as a potential cause of the issue, it is advisable to invalidate both the dispatcher and CDN caches. Direct access (Add an IP Allow List) to the publish instance would be the easiest method in this case.

prop.rules.hierarchical=[
    "/content/projectA/path/to/home-page=/content/projectA/en/home-page.model.json"
]


If the content is still not reflecting the latest updates, I suggest checking whether the content related to the page has been correctly replicated. You can do this by either accessing the CRXDE console or using the infinity selector (*.infinity.json or *.-1.json), provided that it is not restricted by dispatcher rules.

Avatar

Community Advisor

@NageshRaja 

As you have a specific selector, try denying cache for your selector, it should work

/0109 {
/glob "*.home-page-model.json"
/type "deny"
}

Avatar

Administrator

@NageshRaja just checking in! Were you able to get this resolved? If one of the replies above helped—whether it completely solved the issue or simply pointed you in the right direction—marking it as accepted can make it much easier for others with the same question to find a solution. And if you found a different way to fix it, sharing your approach would be a great contribution to the community. Your follow-up not only helps close the loop but also ensures others benefit from your experience. Thanks so much for being part of the conversation!



Kautuk Sahni