So disappointed with setup wizard

spent 8 hours.

install erpnext v12 easy install on ubuntu 18.04 desktop. network manager error
install on server. when first time login, setup failed. retry setup, stuck on wrapping up

can’t even have a good startup.

Been meddling with it on and off for a month and it has the most fragile setup and frustrating management I’ve seen.

It makes me think that the people on this forum who’ve gotten to the point of actually doing something with it are either actively involved in the development, or really enjoy pain (or job security if they are the sole maintainer at their workplace).

  • The easy install setup fails on fresh OS installs
  • The published ready to go images are horribly out of date
  • The backup procedure, which should be the PRIMARY FEATURE of a ERP system is horribly cumbersome
  • Basic business logic that doesn’t make sense for most manufacturing operations is locked in and not configurable without a fork

The typical response is:
If I don’t like something then I should contribute and fix it. Sure, I can, but it is a bit backwards to claim this is a viable ERP system while also scolding the people trying to use it for not fixing their ridiculous problems.

There are many posts dealing with easy install on this forum, many times those needing help will post the output showing what has happened when the installation fails and that output can give others clues what went wrong and then they may offer suggestions.

Your post contains too little information for others to help you.

My encounter with erpnext started in 2014. Every quarter I will try the latest version of erpnext. Since q4 2019 until this month easy install never give me success.

1 Like

I just did easy install in Ubuntu 18.04 and it went without a hitch (production mode).

1 Like

Let me have the link of the guide you are using.

  1. Boot up Ubuntu 18.08

  2. Login using Ubuntu sudo user (example: erpadmin)

  3. At $ prompt, issue the following commands:

    export LC_ALL=C.UTF-8
    sudo python3 --production --user frappeadmin --mysql-root-password 12345abc --mariadb-version 10.3 --admin-password admin12345 --verbose

  4. Go have coffee.

  5. Make frappeadmin a sudo user. (frappeadmin is the user that created)

    sudo usermod -aG sudo frappeadmin
    sudo passwd frappeadmin (give password to frappeadmin user).
    su - frappeadmin (This will shift to frappeadmin user and go to its home directory)
    cd frappe-bench (This is where you issue bench commands if necessary).

  6. make http_timeout longer

    bench config http_timeout 6000
    bench setup supervisor
    bench setup nginx
    sudo supervisorctl reload
    sudo service nginx reload

  7. login using web brower to do initial setup

(Note: when you login ubuntu server, you may use the frappeadmin user and password to login. This will take you to the homepage of frappeadmin. Then cd frappe-bench. This is where you issue bench commands.)

1 Like

both failed.

ubuntu desktop failed at network manager restart
ubuntu server failed at mariadb restart

below is ubuntu desktop console log (fraction as post is limit my character and I don’t have a way to upload text file)

adamtang@adt200322142400:~$ wget
–2020-03-22 14:32:17--
Resolving (…
Connecting to (||:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 15259 (15K) [text/plain]
Saving to: ‘’ 100%[==================>] 14.90K 38.7KB/s in 0.4s

2020-03-22 14:32:19 (38.7 KB/s) - ‘’ saved [15259/15259]

adamtang@adt200322142400:~$ export LC_ALL=C.UTF-8
adamtang@adt200322142400:~$ sudo python3 --production --user frappeadmin --mysql-root-password 1234abc --mariadb-version 10.3 --admin-password admin12345 --verbose
[sudo] password for adamtang:
Checking System Compatibility…
ubuntu 18 is compatible!
Hit:1 bionic InRelease

TASK [frappe_selinux : Install deps] *******************************************
task path: /tmp/.bench/playbooks/roles/frappe_selinux/tasks/main.yml:2
skipping: [localhost] => {
“changed”: false,
“skip_reason”: “Conditional result was False”

TASK [frappe_selinux : Check enabled SELinux modules] **************************
task path: /tmp/.bench/playbooks/roles/frappe_selinux/tasks/main.yml:10
skipping: [localhost] => {
“changed”: false,
“skip_reason”: “Conditional result was False”

TASK [frappe_selinux : Copy frappe_selinux policy] *****************************
task path: /tmp/.bench/playbooks/roles/frappe_selinux/tasks/main.yml:15
skipping: [localhost] => {
“changed”: false,
“skip_reason”: “Conditional result was False”

TASK [frappe_selinux : Compile frappe_selinux policy] **************************
task path: /tmp/.bench/playbooks/roles/frappe_selinux/tasks/main.yml:20
skipping: [localhost] => {
“changed”: false,
“skip_reason”: “Conditional result was False”

TASK [dns_caching : Check NetworkManager.conf exists] **************************
task path: /tmp/.bench/playbooks/roles/dns_caching/tasks/main.yml:2
<> EXEC /bin/sh -c ‘echo ~root && sleep 0’
<> EXEC /bin/sh -c ‘( umask 77 && mkdir -p “echo /root/.ansible/tmp/ansible-tmp-1584859180.8077073-276389819832772” && echo ansible-tmp-1584859180.8077073-276389819832772=“echo /root/.ansible/tmp/ansible-tmp-1584859180.8077073-276389819832772” ) && sleep 0’
Using module file /usr/local/lib/python3.6/dist-packages/ansible/modules/files/
<> PUT /home/adamtang/.ansible/tmp/ansible-local-15062600er0s5/tmp70a5lvc_ TO /root/.ansible/tmp/ansible-tmp-1584859180.8077073-276389819832772/
<> EXEC /bin/sh -c ‘chmod u+x /root/.ansible/tmp/ansible-tmp-1584859180.8077073-276389819832772/ /root/.ansible/tmp/ansible-tmp-1584859180.8077073-276389819832772/ && sleep 0’
<> EXEC /bin/sh -c ‘/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1584859180.8077073-276389819832772/ && sleep 0’
<> EXEC /bin/sh -c ‘rm -f -r /root/.ansible/tmp/ansible-tmp-1584859180.8077073-276389819832772/ > /dev/null 2>&1 && sleep 0’
ok: [localhost] => {
“changed”: false,
“invocation”: {
“module_args”: {
“checksum_algorithm”: “sha1”,
“follow”: false,
“get_attributes”: true,
“get_checksum”: true,
“get_md5”: null,
“get_mime”: true,
“path”: “/etc/NetworkManager/NetworkManager.conf”
“stat”: {
“atime”: 1584858584.204,
“attr_flags”: “e”,
“attributes”: [
“block_size”: 4096,
“blocks”: 8,
“charset”: “us-ascii”,
“checksum”: “9064a54051a231dd1cf6297a3ab9051575d5f346”,
“ctime”: 1584858225.7954776,
“dev”: 2049,
“device_type”: 0,
“executable”: false,
“exists”: true,
“gid”: 0,
“gr_name”: “root”,
“inode”: 262380,
“isblk”: false,
“ischr”: false,
“isdir”: false,
“isfifo”: false,
“isgid”: false,
“islnk”: false,
“isreg”: true,
“issock”: false,
“isuid”: false,
“mimetype”: “text/plain”,
“mode”: “0644”,
“mtime”: 1564800760.0,
“nlink”: 1,
“path”: “/etc/NetworkManager/NetworkManager.conf”,
“pw_name”: “root”,
“readable”: true,
“rgrp”: true,
“roth”: true,
“rusr”: true,
“size”: 98,
“uid”: 0,
“version”: “853598427”,
“wgrp”: false,
“woth”: false,
“writeable”: true,
“wusr”: true,
“xgrp”: false,
“xoth”: false,
“xusr”: false

TASK [dns_caching : Unmask NetworkManager service] *****************************
task path: /tmp/.bench/playbooks/roles/dns_caching/tasks/main.yml:7
<> EXEC /bin/sh -c ‘echo ~root && sleep 0’
<> EXEC /bin/sh -c ‘( umask 77 && mkdir -p “echo /root/.ansible/tmp/ansible-tmp-1584859181.030445-255024067981142” && echo ansible-tmp-1584859181.030445-255024067981142=“echo /root/.ansible/tmp/ansible-tmp-1584859181.030445-255024067981142” ) && sleep 0’
Using module file /usr/local/lib/python3.6/dist-packages/ansible/modules/commands/
<> PUT /home/adamtang/.ansible/tmp/ansible-local-15062600er0s5/tmpyeywo7ti TO /root/.ansible/tmp/ansible-tmp-1584859181.030445-255024067981142/
<> EXEC /bin/sh -c ‘chmod u+x /root/.ansible/tmp/ansible-tmp-1584859181.030445-255024067981142/ /root/.ansible/tmp/ansible-tmp-1584859181.030445-255024067981142/ && sleep 0’
<> EXEC /bin/sh -c ‘/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1584859181.030445-255024067981142/ && sleep 0’
<> EXEC /bin/sh -c ‘rm -f -r /root/.ansible/tmp/ansible-tmp-1584859181.030445-255024067981142/ > /dev/null 2>&1 && sleep 0’
changed: [localhost] => {
“changed”: true,
“cmd”: [
“delta”: “0:00:00.202158”,
“end”: “2020-03-22 14:39:41.386437”,
“invocation”: {
“module_args”: {
“_raw_params”: “systemctl unmask NetworkManager”,
“_uses_shell”: false,
“argv”: null,
“chdir”: null,
“creates”: null,
“executable”: null,
“removes”: null,
“stdin”: null,
“stdin_add_newline”: true,
“strip_empty_ends”: true,
“warn”: true
“rc”: 0,
“start”: “2020-03-22 14:39:41.184279”,
“stderr”: “”,
“stderr_lines”: [],
“stdout”: “”,
“stdout_lines”: []

TASK [dns_caching : Add dnsmasq to network config] *****************************
task path: /tmp/.bench/playbooks/roles/dns_caching/tasks/main.yml:11
<> EXEC /bin/sh -c ‘echo ~root && sleep 0’
<> EXEC /bin/sh -c ‘( umask 77 && mkdir -p “echo /root/.ansible/tmp/ansible-tmp-1584859181.448698-32385133842846” && echo ansible-tmp-1584859181.448698-32385133842846=“echo /root/.ansible/tmp/ansible-tmp-1584859181.448698-32385133842846” ) && sleep 0’
Using module file /usr/local/lib/python3.6/dist-packages/ansible/modules/files/
<> PUT /home/adamtang/.ansible/tmp/ansible-local-15062600er0s5/tmptwqo21sw TO /root/.ansible/tmp/ansible-tmp-1584859181.448698-32385133842846/
<> EXEC /bin/sh -c ‘chmod u+x /root/.ansible/tmp/ansible-tmp-1584859181.448698-32385133842846/ /root/.ansible/tmp/ansible-tmp-1584859181.448698-32385133842846/ && sleep 0’
<> EXEC /bin/sh -c ‘/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1584859181.448698-32385133842846/ && sleep 0’
<> EXEC /bin/sh -c ‘rm -f -r /root/.ansible/tmp/ansible-tmp-1584859181.448698-32385133842846/ > /dev/null 2>&1 && sleep 0’
ERROR! The requested handler ‘restart network manager’ was not found in either the main handlers list nor in the listening handlers list
Traceback (most recent call last):
File “”, line 437, in
File “”, line 241, in install_bench
run_playbook(‘site.yml’, sudo=True, extra_vars=extra_vars)
File “”, line 362, in run_playbook
success = subprocess.check_call(args, cwd=os.path.join(cwd, ‘playbooks’), stdout=log_stream, stderr=sys.stderr)
File “/usr/lib/python3.6/”, line 311, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command ‘[‘ansible-playbook’, ‘-c’, ‘local’, ‘site.yml’, ‘-vvvv’, ‘-e’, ‘@/tmp/extra_vars.json’, ‘–become’, ‘–become-user=frappeadmin’]’ returned non-zero exit status 1.

Agreed. Very fragile. If after error, there is 50% passing through on reissue install command but failed when first time login setup company stuck. On ubuntu server, 1 success install out of 5 times trying and again stuck at first time login setup company.

Hi are u using a linux template OS or VPS server?.

Yes. First time install may get you stuck in RETRY. I never had this problem in google cloud virtual machines. I get this problem in computers with small memory (2G to 4G) and limited CPU core (like 1 core).

2cores 8gb ram.

No use. The installation stop halfway.

Ubuntu 18.04

Just now, I did Ubuntu 18 (Oracle Virtualbox on Windows 10 with 2CPU and 5G memory specs)

I followed the Instructions I gave.
I also did

 sudo nano sites/common_site_config.json

and changed gunicorn_workers to 5

  "gunicorn_workers": 5,

and saved the file using Ctrl-O ENTER Ctrl-X key sequence
then went to the web browser: http://localhost

I was able to install the whole thing in 1 hr 30 minutes. (Reached the ERPNext Desk. No timeouts. No retries.)

VirtualBox… which network type you are using? Bridged network or?

Are you using Ubuntu live server or desktop? Which vbox version are you using?

live server. By the way, I don’t do sudo apt update and sudo apt upgrade.
I only do this after ERPNext is up and running.

Port forwarding.

At Virtualbox:

Settings > Network > Advanced > Port Forwarding
Click + to add new entry
place 22 in both host port and guest port (this is for ssh if you like to use it.)
place 80 in both host port and guest port (this is for the web server)
place 9000 both host port and guest port (this is for chat)
place 8000 both host port and guest port (optional - in case you like to use develop mode)
you may also place the mariadb port if you want to access the mariadb server from Windows

By the way, you better get it… because I did this Ubuntu setup just for you. Hehehe. Its Sunday and Covid-19 lock down in our place. So, I guess helping you is the best use of my time. Hehehe.

1 Like

sigh~~~ still can’t. trying 1 last time… may be change to centos would be better?

1 Like