Thank you for the reply. We have implemented a standalone script as a workaround and have removed the cleanInterval and cleanThreshold extensions.
mmoye
@mmoye
Posts made by mmoye
-
RE: Issue with cleanup extensionposted in general forum
-
RE: Issue with cleanup extensionposted in general forum
Here are the logs after restarting the VM we have JSR running on.
2026-04-28T19:28:17.650Z - info: Initializing jsreport (version: 4.8.0, configuration file: jsreport.config.json, nodejs: 22.14.0) 2026-04-28T19:28:17.651Z - info: Searching for available extensions in C:\apps\jsreportapp\ 2026-04-28T19:28:19.551Z - info: Extensions location cache contains up to date information, skipping crawling in C:\apps\jsreportapp\ 2026-04-28T19:28:19.884Z - info: Found 36 extension(s) 2026-04-28T19:28:19.893Z - warn: Filtering out duplicated extension "handlebars" from C:\apps\jsreportapp\node_modules\@jsreport\jsreport-handlebars, using C:\apps\jsreportapp\node_modules\@jsreport\.jsreport-handlebars-l3SNQned 2026-04-28T19:28:19.931Z - info: Using extension handlebars@4.0.1 2026-04-28T19:28:19.932Z - info: Using extension authentication@4.2.3 2026-04-28T19:28:19.934Z - info: Using extension base@4.0.0 2026-04-28T19:28:19.934Z - info: Using extension child-templates@4.1.0 2026-04-28T19:28:19.935Z - info: Using extension cli@4.1.0 2026-04-28T19:28:19.935Z - info: Using extension components@4.0.2 2026-04-28T19:28:19.935Z - info: Using extension data@4.1.0 2026-04-28T19:28:19.936Z - info: Using extension express@4.2.0 2026-04-28T19:28:19.937Z - info: Using extension freeze@4.0.0 2026-04-28T19:28:19.937Z - info: Using extension fs-store@4.1.0 2026-04-28T19:28:19.940Z - info: Using extension import-export@4.0.6 2026-04-28T19:28:19.940Z - info: Using extension jsrender@4.0.0 2026-04-28T19:28:19.940Z - info: Using extension licensing@4.0.4 2026-04-28T19:28:19.941Z - info: Using extension localization@4.0.1 2026-04-28T19:28:19.941Z - info: Using extension npm@4.0.0 2026-04-28T19:28:19.943Z - info: Using extension pdf-utils@4.3.0 2026-04-28T19:28:19.943Z - info: Using extension reports@4.1.3 2026-04-28T19:28:19.944Z - info: reports extension has enabled old reports cleanup with interval 30000ms, threshold 60000ms and undefined report(s) deletion per run 2026-04-28T19:28:19.944Z - info: Using extension tags@4.0.1 2026-04-28T19:28:19.944Z - info: Using extension text@4.0.2 2026-04-28T19:28:19.944Z - info: Using extension version-control@4.1.0 2026-04-28T19:28:19.945Z - info: Using extension assets@4.2.1 2026-04-28T19:28:19.946Z - info: Using extension authorization@4.1.0 2026-04-28T19:28:19.946Z - info: Using extension browser-client@4.1.0 2026-04-28T19:28:19.946Z - info: Using extension chrome-pdf@4.1.1 2026-04-28T19:28:19.948Z - info: Using extension docx@4.7.0 2026-04-28T19:28:19.948Z - info: Using extension html-to-xlsx@4.2.0 2026-04-28T19:28:19.949Z - info: html-to-xlsx detected chrome as available html engine 2026-04-28T19:28:19.949Z - info: Using extension pptx@4.4.0 2026-04-28T19:28:19.949Z - info: Using extension scheduling@4.1.0 2026-04-28T19:28:19.950Z - info: Using extension scripts@4.2.0 2026-04-28T19:28:19.951Z - info: Using extension static-pdf@4.1.0 2026-04-28T19:28:19.951Z - info: Using extension studio@4.3.0 2026-04-28T19:28:19.963Z - info: Using extension xlsx@4.4.0 2026-04-28T19:28:19.963Z - info: Using extension public-templates@4.0.0 2026-04-28T19:28:19.964Z - info: Using extension sample-template@4.0.1 2026-04-28T19:28:19.964Z - info: Using extension studio-theme-dark@4.0.0 2026-04-28T19:28:19.965Z - info: Code sandboxing is disabled, users can potentially penetrate the local system if you allow code from external users to be part of your reports 2026-04-28T19:28:19.965Z - info: Using general timeout for rendering (reportTimeout: 12000000) 2026-04-28T19:28:19.965Z - info: Using fs provider for template store. 2026-04-28T19:28:19.966Z - info: fs store is persisting using fs for C:\apps\jsreportapp\data 2026-04-28T19:28:20.070Z - info: fs store is loading data 2026-04-28T19:28:20.315Z - info: fs store is initialized successfully 2026-04-28T19:28:20.325Z - info: Creating default express app. 2026-04-28T19:28:20.340Z - error: Error when starting http server on port 5488 Error: listen EADDRINUSE: address already in use :::5488 at Server.setupListenHandle [as _listen2] (node:net:1937:16) at listenInCluster (node:net:1994:12) at Server.listen (node:net:2099:7) at C:\apps\jsreportapp\node_modules\@jsreport\jsreport-express\lib\main.js:22:12 at new Promise (<anonymous>) at startAsync (C:\apps\jsreportapp\node_modules\@jsreport\jsreport-express\lib\main.js:16:10) at C:\apps\jsreportapp\node_modules\@jsreport\jsreport-express\lib\main.js:50:14 at Object.start (C:\apps\jsreportapp\node_modules\@jsreport\jsreport-express\lib\main.js:125:13) at Object.<anonymous> (C:\apps\jsreportapp\node_modules\@jsreport\jsreport-express\lib\main.js:333:30) at async ListenerCollection.fire (C:\apps\jsreportapp\node_modules\@jsreport\jsreport-core\lib\shared\listenerCollection.js:157:21) 2026-04-28T19:28:20.340Z - error: Error occurred during reporter init: Error: listen EADDRINUSE: address already in use :::5488 at Server.setupListenHandle [as _listen2] (node:net:1937:16) at listenInCluster (node:net:1994:12) at Server.listen (node:net:2099:7) at C:\apps\jsreportapp\node_modules\@jsreport\jsreport-express\lib\main.js:22:12 at new Promise (<anonymous>) at startAsync (C:\apps\jsreportapp\node_modules\@jsreport\jsreport-express\lib\main.js:16:10) at C:\apps\jsreportapp\node_modules\@jsreport\jsreport-express\lib\main.js:50:14 at Object.start (C:\apps\jsreportapp\node_modules\@jsreport\jsreport-express\lib\main.js:125:13) at Object.<anonymous> (C:\apps\jsreportapp\node_modules\@jsreport\jsreport-express\lib\main.js:333:30) at async ListenerCollection.fire (C:\apps\jsreportapp\node_modules\@jsreport\jsreport-core\lib\shared\listenerCollection.js:157:21) 2026-04-28T19:28:20.776Z - info: docx generation was finished rootId=pbp9huzgxenxetv, id=pbp9huzgxenxetv 2026-04-28T19:28:21.115Z - info: Rendering request 3 finished in 46396 ms rootId=pbp9huzgxenxetv, id=pbp9huzgxenxetvI generated 2 reports at 7:28 UTC.


They are both still in storage (7:37 UTC)

-
RE: Issue with cleanup extensionposted in general forum
Thank you for the quick reply. We are using version 4.8.0. Template store is fs. There is nothing in the logs related to cleanup other than an acknowledgement of the settings. What does the last part of the statement refer to with 'undefined report(s) deletion per run'?
info: reports extension has enabled old reports cleanup with interval 900000ms, threshold 1800000ms and undefined report(s) deletion per runHere is the entire config:
{ "httpPort": 5488, "store": { "provider": "fs" }, "blobStorage": { "provider": "fs" }, "logger": { "console": { "transport": "console", "level": "debug" }, "file": { "transport": "file", "level": "info", "filename": "logs/reporter.log" }, "error": { "transport": "file", "level": "error", "filename": "logs/error.log" } }, "trustUserCode": true, "reportTimeout": 12000000, "workers": { "numberOfWorkers": 8 }, "extensions": { "authentication": { "cookieSession": { "secret": "xxxxxxxxxx" }, "admin": { "username": "xxxxxxxxxx", "password": "xxxxxxxxxxx" }, "enabled": true }, "sample-template": { "createSamples": true }, "reports": { "cleanInterval": "15m", "cleanThreshold": "30m" } } } -
Issue with cleanup extensionposted in general forum
We have enabled cleanup to run every 15 minutes on reports older than 30 minutes. This works one or two times when initiated, then seems to work haphazardly. That is, checking the status of a report older than 30 minutes will return "report not found" but the document persists in storage. Is it possible we have conflicting settings in the config?
"reports": { "cleanInterval": "15m", "cleanThreshold": "30m" }
Timestamps are UTC, but you can see many old ones here, including the one that is "not found" in the screenshot above.

-
RE: docxChild with imagesposted in general forum
Great, thank you! I look forward to any updates on that topic!
-
RE: docxChild with imagesposted in general forum
Thank you for the quick reply! We are building a sort of photo log with photos rendered via url coming from an outside source. Photos will be both portrait and landscape, have different resolutions/sizes etc. The easiest way to do all this is to pass an orientation variable (boolean) in the data and then include the appropriate child template that contains nothing more than the image placeholder (that way we can use docxImage in the child template and take advantage of usePlaceholderSize, etc.). For example:
{{#each photos}}{{#if landscape}}{{docxChild "landscape_template.docx"}}{{else}}{{docxChild "portrait_template.docx"}}{{/if}}{{/each}} -
docxChild with imagesposted in general forum
Hello! Can docxChild render child templates that contain images?
-
Tags attributes through API call for specific templateposted in general forum
Is it possible to get the other attributes of the tags through an API call for a specific template? When I run something like this
localhost:5488/odata/templates?$select=tags,name,shortid&$filter=shortid eq 'myShortId'I get a return like this
{ "@odata.context": "localhost:5488/odata/$metadata#templates(tags,name,shortid)", "value": [ { "tags": [ { "shortid": "-myTagId" } ], "name": "my_template", "shortid": "myShortId" } ] }What I really need is something like this
{ "@odata.context": "localhost:5488/odata/$metadata#templates(tags,name,shortid)", "value": [ { "tags": [ { "shortid": "-myTagId", "name": "myTagName", "description": "myTagDesc" } ], "name": "my_template", "shortid": "myShortId" } ] } -
RE: child-template html into docxposted in general forum
Any update on this? We have the need to compile multiple templates into a single Word doc, either through docxChild or child templates utilizing html recipe. While the html child template works with a very simple straight text structure, any formatting or html tags that are applied results in an error pop up.

-
RE: User cannot save new templateposted in general forum
Ah, thank you! I did not realize it was under the Edit menu. I was looking at the Properties panel where permissions are assigned for individual entities. Cheers!