Creating new theme. Saving the new Theme config error on save
App Versions
{
"erpnext": "15.32.1",
"frappe": "15.37.0"
}
Route
Form/Website Theme/new-website-theme-vekrlomyxn
Traceback
Traceback (most recent call last):
File "apps/frappe/frappe/app.py", line 114, in application
response = frappe.api.handle(request)
File "apps/frappe/frappe/api/__init__.py", line 49, in handle
data = endpoint(**arguments)
File "apps/frappe/frappe/api/v1.py", line 36, in handle_rpc_call
return frappe.handler.handle()
File "apps/frappe/frappe/handler.py", line 49, in handle
data = execute_cmd(cmd)
File "apps/frappe/frappe/handler.py", line 85, in execute_cmd
return frappe.call(method, **frappe.form_dict)
File "apps/frappe/frappe/__init__.py", line 1768, in call
return fn(*args, **newargs)
File "apps/frappe/frappe/utils/typing_validations.py", line 31, in wrapper
return func(*args, **kwargs)
File "apps/frappe/frappe/desk/form/save.py", line 39, in savedocs
doc.save()
File "apps/frappe/frappe/model/document.py", line 337, in save
return self._save(*args, **kwargs)
File "apps/frappe/frappe/model/document.py", line 359, in _save
return self.insert()
File "apps/frappe/frappe/model/document.py", line 291, in insert
self.run_before_save_methods()
File "apps/frappe/frappe/model/document.py", line 1091, in run_before_save_methods
self.run_method("validate")
File "apps/frappe/frappe/model/document.py", line 962, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File "apps/frappe/frappe/model/document.py", line 1322, in composer
return composed(self, method, *args, **kwargs)
File "apps/frappe/frappe/model/document.py", line 1304, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File "apps/frappe/frappe/model/document.py", line 959, in fn
return method_object(*args, **kwargs)
File "apps/frappe/frappe/website/doctype/website_theme/website_theme.py", line 50, in validate
self.generate_bootstrap_theme()
File "apps/frappe/frappe/website/doctype/website_theme/website_theme.py", line 110, in generate_bootstrap_theme
process = Popen(command, cwd=frappe.get_app_source_path("frappe"), stdout=PIPE, stderr=PIPE)
File "/opt/bitnami/python/lib/python3.10/subprocess.py", line 971, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/opt/bitnami/python/lib/python3.10/subprocess.py", line 1863, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'node'
Request Data
{
"type": "POST",
"args": {
"doc": "{\"docstatus\":0,\"doctype\":\"Website Theme\",\"name\":\"new-website-theme-ghxhpagcyv\",\"__islocal\":1,\"__unsaved\":1,\"owner\":\"db@xgccorp.com\",\"module\":\"Website\",\"custom\":1,\"font_properties\":\"wght@300;400;500;600;700;800\",\"button_rounded_corners\":1,\"button_shadows\":0,\"button_gradients\":0,\"ignored_apps\":[],\"idx\":0,\"theme\":\"XGC-DARK-THEME\",\"google_font\":\"Montserrat\"}",
"action": "Save"
},
"btn": {
"jQuery3700021629423918763991": {
"events": {
"click": [
{
"type": "click",
"origType": "click",
"guid": 6991,
"namespace": ""
}
]
}
}
},
"freeze": true,
"headers": {},
"error_handlers": {},
"url": "/api/method/frappe.desk.form.save.savedocs",
"request_id": null
}
Response Data
{
"exception": "FileNotFoundError: [Errno 2] No such file or directory: 'node'",
"exc_type": "FileNotFoundError"
}