Hi everyone,
I’m currently building a project based on the Neos Demo and have encountered two issues that seem related. I’m struggling to debug and would appreciate your guidance.
1. Issue with the Global Footer and Missing ContentCollection
I’m getting the following exception:
Exception #1389352984: No content collection of type Neos.Neos:ContentCollection could be found in the current node (/sites/my-vendor/node-kxsfrha8v9c0t) or at the path "footer". You might want to adjust your node type configuration and create the missing child node through the "./flow node:repair --node-type my.Vendor:Document.Page" command.
Here’s my current setup:
-
The
Homepage.yaml
is structured like this example: Homepage.yaml -
Similarly,
my Page.yaml
follows this structure: Page.yaml
Only for the Homepage.yaml
, the footer
is defined as a child node.
For the footer, I’m using the integration code from the Neos Demo: Footer Integration.
I’ve added some tiny adjustments (experiments with caching…), as shown below:
prototype(my.Vendor:Integration.Footer) < prototype(Neos.Fusion:Renderer) {
renderPath = '/footer'
}
prototype(my.Vendor:Integration.Footer.Renderer) < prototype(my.Vendor:Presentation.Footer) {
content = Neos.Neos:ContentCollection {
nodePath = ${q(site).children('footer').property('_path')}
attributes.class = 'content'
}
copyright = ${q(node).children('footer').property('title')}
@cache {
mode = 'cached'
entryIdentifier {
static = 'footer'
site = ${site}
}
entryTags {
1 = ${Neos.Caching.nodeTag(documentNode)}
2 = ${Neos.Caching.nodeTag(q(documentNode).parents())}
3 = ${Neos.Caching.nodeTypeTag('my.Vendor:Collection.Content.Footer')}
}
}
}
footer = my.Vendor:Integration.Footer.Renderer
For the presentation part, I used this structure: Footer Presentation
prototype(my.Vendor:Presentation.Footer) < prototype(Neos.Fusion:Component) {
renderer = afx`
<footer>
<Neos.Neos:ContentCollection nodePath="footer" />
</footer>
`
}
Initially, I tried adding more components to the footer (e.g., <my.Vendor:Presentation.Footer.Provider {...props}
) but encountered issues passing properties. As a workaround, I’m now using <Neos.Neos:ContentCollection nodePath="footer" />
.
Despite that, the exception persists, and I’m unsure what’s missing.
2. New Pages Not Displayed in the Frontend
I’ve also encountered issues with newly created pages (my.Vendor:Document.Page
). Here’s what happens:
- In the backend:
- I can create pages, edit their content, and navigate to them without any issues.
- In the frontend:
- The new pages are not visible in the navigation.
- Trying to preview or directly access these pages results in the same exception as in Issue 1.
- Cache behavior:
- If I flush the cache using
flow:cache:flush
, the pages become visible and accessible in the frontend. - However, after flushing, the backend sometimes throws the same exception as in Issue 1. Strangely, after navigating to the homepage in the backend, all pages load correctly without errors.
- Browser-specific behavior:
- If I switch to a different browser (e.g., Edge), the homepage navigation again shows no pages. However, directly accessing the new pages via URL works (If already flushed or it was working already in Chrome).
This leads me to suspect a caching issue. I’m using Redis for caching with this configuration: Redis Configuration.
What I’ve Tried
- Reviewing my node type configuration (
Homepage.yaml
,Page.yaml
). - Experimenting with caching.
- Manually repairing nodes with
./flow node:repair
. - Flushing the cache, which temporarily resolves the issue but is not a viable solution.
Suspicions and Open Questions
- Could this be a caching misconfiguration (e.g., incorrect tagging or Redis behavior)?
- Are my node definitions or Fusion components missing something?
- Why do nodes sometimes seem to lose their parent relationship?
- I’d greatly appreciate any tips or ideas for debugging this issue further.
Thanks in advance for your help!