India_compliance installation error

I have tried to install india compliance module using the command

bench get-app --branch version-15 GitHub - resilient-tech/india-compliance: Simple, yet powerful compliance solutions for Indian businesses

bench --site default install-app india-compliance

and got the following response

root@erpnext-196249-erp-0:/cloudclusters/erpnext/frappe-bench# bench get-app --branch version-15 GitHub - resilient-tech/india-compliance: Simple, yet powerful compliance solutions for Indian businesses
Getting india-compliance
$ git clone GitHub - resilient-tech/india-compliance: Simple, yet powerful compliance solutions for Indian businesses --branch version-15 --depth 1 --origin upstream
Cloning into ‘india-compliance’…
remote: Enumerating objects: 612, done.
remote: Counting objects: 100% (612/612), done.
remote: Compressing objects: 100% (564/564), done.
remote: Total 612 (delta 82), reused 281 (delta 37), pack-reused 0 (from 0)
Receiving objects: 100% (612/612), 1.08 MiB | 5.04 MiB/s, done.
Resolving deltas: 100% (82/82), done.
Ignoring dependencies of GitHub - resilient-tech/india-compliance: Simple, yet powerful compliance solutions for Indian businesses. To install dependencies use --resolve-deps
Installing india_compliance
$ /cloudclusters/erpnext/frappe-bench/env/bin/python -m pip install --quiet --upgrade -e /cloudclusters/erpnext/frappe-bench/apps/india_compliance
$ bench build --app india_compliance
:heavy_check_mark: Application Assets Linked

yarn run v1.22.22
$ node esbuild --production --apps india_compliance --run-build-command
Browserslist: caniuse-lite is outdated. Please run:
npx update-browserslist-db@latest
Why you should do it regularly: GitHub - browserslist/update-db: CLI tool to update caniuse-lite to refresh target browsers from Browserslist config
File Size

india_compliance/dist/js/
├─ gstr1.bundle.LMOF55ES.js 7.07 Kb
├─ ims.bundle.C4HROEWL.js 8.39 Kb
├─ india_compliance.bundle.FFZJEEEM.js 46.29 Kb
├─ purchase_reconciliation_tool.bundle.LOLTTYSQ.js 9.37 Kb
├─ india_compliance_account.bundle.GOHREXA3.js 140.58 Kb
└─ india_compliance_account.bundle.D7FIGC7S.css 7.51 Kb

india_compliance/dist/css/
└─ india_compliance_account.bundle.AMIOS53S.css 3.08 Kb

india_compliance/dist/css-rtl/
└─ india_compliance_account.bundle.NLDLDUPU.css 3.08 Kb

DONE Total Build Time: 1.083s

Done in 2.20s.
Compiling translations for india_compliance
ERROR: Command ‘sudo supervisorctl status’ returned non-zero exit status 127.
Traceback (most recent call last):
File “/usr/local/bin/bench”, line 8, in
sys.exit(cli())
File “/usr/local/lib/python3.10/dist-packages/bench/cli.py”, line 132, in cli
bench_command()
File “/usr/local/lib/python3.10/dist-packages/click/core.py”, line 1161, in call
return self.main(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/click/core.py”, line 1082, in main
rv = self.invoke(ctx)
File “/usr/local/lib/python3.10/dist-packages/click/core.py”, line 1697, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/usr/local/lib/python3.10/dist-packages/click/core.py”, line 1443, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/usr/local/lib/python3.10/dist-packages/click/core.py”, line 788, in invoke
return __callback(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/bench/commands/make.py”, line 181, in get_app
get_app(
File “/usr/local/lib/python3.10/dist-packages/bench/app.py”, line 778, in get_app
app.install(verbose=verbose, skip_assets=skip_assets, restart_bench=restart_bench)
File “/usr/local/lib/python3.10/dist-packages/bench/utils/render.py”, line 126, in wrapper_fn
return fn(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/bench/app.py”, line 253, in install
install_app(
File “/usr/local/lib/python3.10/dist-packages/bench/app.py”, line 933, in install_app
bench.reload(_raise=False)
File “/usr/local/lib/python3.10/dist-packages/bench/utils/render.py”, line 126, in wrapper_fn
return fn(*args, **kwargs)
File “/usr/local/lib/python3.10/dist-packages/bench/bench.py”, line 154, in reload
restart_supervisor_processes(bench_path=self.name, web_workers=web, _raise=_raise)
File “/usr/local/lib/python3.10/dist-packages/bench/utils/bench.py”, line 326, in restart_supervisor_processes
supervisor_status = get_cmd_output(“sudo supervisorctl status”, cwd=bench_path)
File “/usr/local/lib/python3.10/dist-packages/bench/utils/init.py”, line 240, in get_cmd_output
output = subprocess.check_output(
File “/usr/lib/python3.10/subprocess.py”, line 421, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File “/usr/lib/python3.10/subprocess.py”, line 526, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command ‘sudo supervisorctl status’ returned non-zero exit status 127.
INFO: A newer version of bench is available: 5.23.0 → 5.25.1
root@erpnext-196249-erp-0:/cloudclusters/erpnext/frappe-bench# bench --site your-site-name install-app india_compliance
Site your-site-name does not exist!
root@erpnext-196249-erp-0:/cloudclusters/erpnext/frappe-bench# bench --site default install-app india_compliance
App erpnext already installed

Installing india_compliance…
An error occurred while installing india_compliance: (‘Module Def’, ‘GST India’, IntegrityError(1062, “Duplicate entry ‘GST India’ for key ‘PRIMARY’”))
Traceback with variables (most recent call last):
File “apps/frappe/frappe/commands/site.py”, line 484, in install_app
_install_app(app, verbose=context.verbose, force=force)
context = {‘sites’: [‘default’], ‘force’: False, ‘verbose’: False, ‘profile’: False}
apps = (‘india_compliance’,)
force = False
_install_app = <function install_app at 0x7f1a7af9b880>
filelock = <function filelock at 0x7f1a7af99120>
exit_code = 0
site = ‘default’
app = ‘india_compliance’
err = DuplicateEntryError(‘Module Def’, ‘GST India’, IntegrityError(1062, “Duplicate entry ‘GST India’ for key ‘PRIMARY’”))
File “apps/frappe/frappe/installer.py”, line 314, in install_app
add_module_defs(name, ignore_if_duplicate=force)
name = ‘india_compliance’
verbose = False
set_as_patched = True
force = False
sync_jobs = <function sync_jobs at 0x7f1a7a3d0e50>
sync_for = <function sync_for at 0x7f1a7a3d1870>
sync_customizations = <function sync_customizations at 0x7f1a7c417eb0>
sync_fixtures = <function sync_fixtures at 0x7f1a7a3d1ab0>
app_hooks = {‘accounting_dimension_doctypes’: [‘Bill of Entry’, ‘Bill of Entry Item’], ‘after_app_install’: [‘india_compliance.install.after_app_install’], ‘after_install’: [‘india_compliance.install.after_install’], ‘after_migrate’: [‘india_compliance.audit_trail.setup.after_migrate’], ‘app_color’: [‘grey’], ‘app_description’: [‘ERPNext app to simplify compliance with Indian Rules and Regulations’], ‘app_email’: [‘hello@indiacompliance.app’], ‘app_icon’: [‘octicon octicon-file-directory’], ‘app_include_js’: [‘india_compliance.bundle.js’], ‘app_license’: [‘GNU General Public License (v3)’], ‘app_name’: [‘india_compliance’], ‘app_publisher’: [‘Resilient Tech’], ‘app_title’: [‘India Compliance’], ‘audit_trail_doctypes’: [‘Accounts Settings’, ‘Dunning’, ‘Invoice Discounting’, ‘Journal Entry’, ‘Payment Entry’, ‘Period Closing Voucher’, ‘Process Deferred Accounting’, ‘Purchase Invoice’, ‘Sales Invoice’, ‘Asset’, ‘Asset Capitalization’, ‘Asset Repair’, ‘Delivery Note’, ‘Landed Cost Voucher’, 'Purchase R…
installed_apps = [‘frappe’, ‘erpnext’, ‘hrms’, ‘payments’, ‘healthcare’, ‘health_sil’]
app = ‘frappe/erpnext’
required_app = ‘erpnext’
before_install = ‘india_compliance.patches.check_version_compatibility.execute’
out = None
File “apps/frappe/frappe/installer.py”, line 679, in add_module_defs
d.insert(ignore_permissions=True, ignore_if_duplicate=ignore_if_duplicate)
app = ‘india_compliance’
ignore_if_duplicate = False
modules = [‘GST India’, ‘Income Tax India’, ‘VAT India’, ‘Audit Trail’]
module = ‘GST India’
d = <ModuleDef: GST India>
File “apps/frappe/frappe/model/document.py”, line 320, in insert
self.db_insert(ignore_if_duplicate=ignore_if_duplicate)
self = <ModuleDef: GST India>
ignore_permissions = True
ignore_links = None
ignore_if_duplicate = False
ignore_mandatory = None
set_name = None
set_child_names = True
File “apps/frappe/frappe/model/base_document.py”, line 603, in db_insert
raise frappe.DuplicateEntryError(self.doctype, self.name, e)
self = <ModuleDef: GST India>
ignore_if_duplicate = False
conflict_handler = ‘’
d = {‘name’: ‘GST India’, ‘creation’: ‘2025-05-14 22:38:51.192016’, ‘modified’: ‘2025-05-14 22:38:51.192016’, ‘modified_by’: ‘Administrator’, ‘owner’: ‘Administrator’, ‘docstatus’: 0, ‘idx’: 0, ‘module_name’: ‘GST India’, ‘custom’: 0, ‘package’: None, ‘app_name’: ‘india_compliance’, ‘restrict_to_domain’: None, ‘_user_tags’: None, ‘_comments’: None, ‘_assign’: None, ‘_liked_by’: None}
columns = [‘name’, ‘creation’, ‘modified’, ‘modified_by’, ‘owner’, ‘docstatus’, ‘idx’, ‘module_name’, ‘custom’, ‘package’, ‘app_name’, ‘restrict_to_domain’, ‘_user_tags’, ‘_comments’, ‘_assign’, ‘_liked_by’]
frappe.exceptions.DuplicateEntryError: (‘Module Def’, ‘GST India’, IntegrityError(1062, “Duplicate entry ‘GST India’ for key ‘PRIMARY’”))
root@erpnext-196249-erp-0:/cloudclusters/erpnext/frappe-bench#

What is the cause of the error??
is there any another installation commands or URL to get the Module??

hello @albins

Try this commands:

1. bench --site default uninstall-app india_compliance --force
2. bench --site default install-app india_compliance