apostrophecms / apostrophecms/apostrophe

Template Fragments Cause 500 error in A3.6

Open
#3,490 8 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
JavaScript
Stars
4.6k
Forks
650
Avg merge
19h 21m
Merged PRs (30d)
23

Description

## To Reproduce
Update to A3.6 and have a template fragment (doesn't have to pass data) imported to the layout.html file (e.g. nav, footer). When you try to access any page, it will give a 500 error.

Issue does not happen on A3.5

## Expected behavior
Rendering template fragments correctly.

## Describe the bug
Template fragments cause 500 error in A3.6

## Details
```
TypeError: Cannot read property 'data' of undefined
at Object.getRenderArgs (/home/eglz/despertar/despertar/node_modules/apostrophe/modules/@apostrophecms/template/index.js:298:17)
at /home/eglz/despertar/despertar/node_modules/apostrophe/modules/@apostrophecms/template/lib/custom-tags/render.js:111:19
at internal/util.js:340:30
at new Promise ()
at internal/util.js:339:12
at Object.run (/home/eglz/despertar/despertar/node_modules/apostrophe/modules/@apostrophecms/template/lib/custom-tags/render.js:116:9)
at Object.extension.run (/home/eglz/despertar/despertar/node_modules/apostrophe/modules/@apostrophecms/template/index.js:446:47)
at eval (eval at _compile (/home/eglz/despertar/despertar/node_modules/nunjucks/src/environment.js:633:18), :15:34)
at /home/eglz/despertar/despertar/node_modules/nunjucks/src/environment.js:615:9
at eval (eval at _compile (/home/eglz/despertar/despertar/node_modules/nunjucks/src/environment.js:633:18), :33:1)
at Object.extension.run (/home/eglz/despertar/despertar/node_modules/apostrophe/modules/@apostrophecms/template/index.js:447:22)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
:: 2021-10-16T06:06:01-0500: template error at /
Current user: my-user
Template render error: (@apostrophecms/home-page:page.html)
TypeError: Cannot read property 'data' of undefined
at Object._prettifyError (/home/eglz/despertar/despertar/node_modules/nunjucks/src/lib.js:36:11)
at /home/eglz/despertar/despertar/node_modules/nunjucks/src/environment.js:563:19
at eval (eval at _compile (/home/eglz/despertar/despertar/node_modules/nunjucks/src/environment.js:633:18), :13:11)
at /home/eglz/despertar/despertar/node_modules/nunjucks/src/environment.js:613:9
at eval (eval at _compile (/home/eglz/despertar/despertar/node_modules/nunjucks/src/environment.js:633:18), :16:11)
at Object.extension.run (/home/eglz/despertar/despertar/node_modules/apostrophe/modules/@apostrophecms/template/index.js:449:22)
at processTicksAndRejections (internal/process/task_queues.js:95:5) {
cause: Template render error: (@apostrophecms/home-page:page.html)
TypeError: Cannot read property 'data' of undefined
at Object._prettifyError (/home/eglz/despertar/despertar/node_modules/nunjucks/src/lib.js:36:11)
at /home/eglz/despertar/despertar/node_modules/nunjucks/src/environment.js:563:19
at eval (eval at _compile (/home/eglz/despertar/despertar/node_modules/nunjucks/src/environment.js:633:18), :13:11)
at /home/eglz/despertar/despertar/node_modules/nunjucks/src/environment.js:613:9
at eval (eval at _compile (/home/eglz/despertar/despertar/node_modules/nunjucks/src/environment.js:633:18), :16:11)
at Object.extension.run (/home/eglz/despertar/despertar/node_modules/apostrophe/modules/@apostrophecms/template/index.js:449:22)
at processTicksAndRejections (internal/process/task_queues.js:95:5),
isOperational: true
```
**Version of Node.js:**
14.18.1

**Server Operating System:**
Linux/Ubuntu

Contributor guide

Open the contributing guide

Research direction

Reproduce the A3.6 failure with a fragment imported into layout.html, then inspect getRenderArgs in modules/@apostrophecms/template/index.js and the render path in modules/@apostrophecms/template/lib/custom-tags/render.js. Compare the behavior with A3.5. Done means pages render without a 500 error and imported template fragments render correctly.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
backend, web-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.