Custom app installation throwingerror

Hi Team,

I am using frappe developer solution using doc →

issue reproducible steps →

setting up bench
creating site
installing erpnext and other app
Installing custom app (app installation is going fine without any error)
=> However in migration and on browser I am getting below error :

upon troubleshooting I have below observations :

  1. list-apps is not showing my custom app
  2. from bench console get installed apps not returning my custom app which installed successfully.

In [16]: print(frappe.get_installed_apps())
[‘frappe’, ‘erpnext’, ‘crm’]

on database "select * from tabInstalled Application ; showing only two entries frappe and erpnext

in function add_to_installed_apps during app installation below lines don’t raise any exception for my custom app :

frappe.db.set_global(“installed_apps”, json.dumps(installed_apps))
frappe.db.commit()

#########################################################

frappe.get_single(“Installed Applications”).update_versions()
File “/workspace/frappe-bench/apps/frappe/frappe/core/doctype/installed_applications/installed_applications.py”, line 30, in update_versions
for app in frappe.utils.get_installed_apps_info():
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/workspace/frappe-bench/apps/frappe/frappe/utils/init.py”, line 774, in get_installed_apps_info
for app, version_details in get_versions().items()
^^^^^^^^^^^^^^
File “/workspace/frappe-bench/apps/frappe/frappe/utils/typing_validations.py”, line 31, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File “/workspace/frappe-bench/apps/frappe/frappe/utils/change_log.py”, line 116, in get_versions
“title”: app_hooks.get(“app_title”)[0],

TypeError: ‘NoneType’ object is not subscriptable

#########################################################

Any help or guidance will be really helpfull thanks :slight_smile:

Check if apps.txt has your custom app name in it… else add it there… it happens to me, sometimes apps.txt is not updated on installing custom app

app name is there : (nextcore)

frappe@57bee5534b4c:/workspace/frappe-bench/sites$ cat apps.txt
frappe
payments
test_app
crm
hrms
erpnext
nextcore

but its not showing in table : -

select app_name from tabInstalled Application ;
±---------+
| app_name |
±---------+
| frappe |
| helpdesk |
| erpnext |
| hrms |
| payments |
| crm |
±---------+
6 rows in set (0.000 sec)

getting below error on browser →

You can use my script to properly spin up a development container in minutes

@Yamen_Zakhour

Thanks for your help !!

But we already done so much for our current setup, Still wants to try little more before give up on it :slight_smile:

any suggestions what could be wrong in our case ?

I have no idea, I use the same development setup for all my clients and projects and have never faced that issue

can we use it on mac /window both ?

All you need is docker with vscode docker extension

Hi Yamen,

using your repo now…

getting below error while installing erpnext →

builtins.ImportError: cannot import name ‘get_setup_wizard_completed_apps’ from ‘frappe.core.doctype.installed_applications.installed_applications’ (apps/frappe/frappe/core/doctype/installed_applications/installed_applications.py)

any idea ?

full stack →

File “apps/erpnext/erpnext/utilities/init.py”, line 9, in
from erpnext.utilities.activation import get_level
name = ‘erpnext.utilities’
doc = None
package = ‘erpnext.utilities’
loader = <_frozen_importlib_external.SourceFileLoader object at 0xffffb125a690>
spec = ModuleSpec(name=‘erpnext.utilities’, loader=<_frozen_importlib_external.SourceFileLoader object at 0xffffb125a690>, origin=‘apps/erpnext/erpnext/utilities/init.py’, submodule_search_locations=[‘apps/erpnext/erpnext/utilities’])
path = [‘apps/erpnext/erpnext/utilities’]
file = ‘apps/erpnext/erpnext/utilities/init.py’
cached = ‘apps/erpnext/erpnext/utilities/pycache/init.cpython-311.pyc’
builtins = {‘name’: ‘builtins’, ‘doc’: “Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all ‘built-in’\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.”, ‘package’: ‘’, ‘loader’: <class ‘_frozen_importlib.BuiltinImporter’>, ‘spec’: ModuleSpec(name=‘builtins’, loader=<class ‘_frozen_importlib.BuiltinImporter’>, origin=‘built-in’), ‘build_class’: , ‘import’: , ‘abs’: , ‘all’: , ‘any’: , ‘ascii’: , ‘bin’: , ‘breakpoint’: , ‘callable’: <built-in f…
contextmanager = <function contextmanager at 0xffffb6311bc0>
frappe = <module ‘frappe’ from ‘apps/frappe/frappe/init.py’>
_ = <function _ at 0xffffb6395d00>
cstr = <function cstr at 0xffffb4e44400>
File “apps/erpnext/erpnext/utilities/activation.py”, line 7, in
from frappe.core.doctype.installed_applications.installed_applications import get_setup_wizard_completed_apps
name = ‘erpnext.utilities.activation’
doc = None
package = ‘erpnext.utilities’
loader = <_frozen_importlib_external.SourceFileLoader object at 0xffffb1258390>
spec = ModuleSpec(name=‘erpnext.utilities.activation’, loader=<_frozen_importlib_external.SourceFileLoader object at 0xffffb1258390>, origin=‘apps/erpnext/erpnext/utilities/activation.py’)
file = ‘apps/erpnext/erpnext/utilities/activation.py’
cached = ‘apps/erpnext/erpnext/utilities/pycache/activation.cpython-311.pyc’
builtins = {‘name’: ‘builtins’, ‘doc’: “Built-in functions, types, exceptions, and other objects.\n\nThis module provides direct access to all ‘built-in’\nidentifiers of Python; for example, builtins.len is\nthe full name for the built-in function len().\n\nThis module is not normally accessed explicitly by most\napplications, but can be useful in modules that provide\nobjects with the same name as a built-in value, but in\nwhich the built-in of that name is also needed.”, ‘package’: ‘’, ‘loader’: <class ‘_frozen_importlib.BuiltinImporter’>, ‘spec’: ModuleSpec(name=‘builtins’, loader=<class ‘_frozen_importlib.BuiltinImporter’>, origin=‘built-in’), ‘build_class’: , ‘import’: , ‘abs’: , ‘all’: , ‘any’: , ‘ascii’: , ‘bin’: , ‘breakpoint’: , ‘callable’: <built-in f…
frappe = <module ‘frappe’ from ‘apps/frappe/frappe/init.py’>
_ = <function _ at 0xffffb6395d00>
builtins.ImportError: cannot import name ‘get_setup_wizard_completed_apps’ from ‘frappe.core.doctype.installed_applications.installed_applications’ (apps/frappe/frappe/core/doctype/installed_applications/installed_applications.py)

Most probably a frappe erpnext version mismatch try develop branches of both

Hloo Bro @vipinazad-85 i am facing the same issue …did you found any solutions?