Error on migrate when installing frappe

frappe@tif:~/frappe-bench/apps$ bench migrate
Migrating tif.com
Updating DocTypes for frappe : [========================================] 100%
Updating DocTypes for payments : [========================================] 100%
Updating DocTypes for erpnext : [========================================] 100%
Updating DocTypes for hrms : [========================================] 100%
Updating DocTypes for account_addon : [========================================] 100%
Updating DocTypes for accounts_addon_1: [========================================] 100%
Updating DocTypes for crm : [========================================] 100%
Updating Dashboard for frappe
Updating Dashboard for payments
Updating Dashboard for erpnext
Updating Dashboard for hrms
Updating Dashboard for account_addon
Updating Dashboard for accounts_addon_1
Updating Dashboard for crm
Updating customizations for Address
Updating customizations for Contact
Queued rebuilding of search index for tif.com

Traceback (most recent call last):
File “/usr/lib/python3.10/runpy.py”, line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File “/usr/lib/python3.10/runpy.py”, line 86, in _run_code
exec(code, run_globals)
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 114, in
main()
File “/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 20, in main
click.Group(commands=commands)(prog_name=“bench”)
File “/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py”, line 1161, in call
return self.main(*args, **kwargs)
File “/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py”, line 1082, in main
rv = self.invoke(ctx)
File “/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py”, line 1697, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py”, line 1697, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py”, line 1443, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/core.py”, line 788, in invoke
return __callback(*args, **kwargs)
File “/home/frappe/frappe-bench/env/lib/python3.10/site-packages/click/decorators.py”, line 33, in new_func
return f(get_current_context(), *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/commands/init.py”, line 29, in _func
ret = f(frappe._dict(ctx.obj), *args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/commands/site.py”, line 686, in migrate
SiteMigration(
File “/home/frappe/frappe-bench/apps/frappe/frappe/migrate.py”, line 187, in run
self.post_schema_updates()
File “/home/frappe/frappe-bench/apps/frappe/frappe/migrate.py”, line 52, in wrapper
raise e
File “/home/frappe/frappe-bench/apps/frappe/frappe/migrate.py”, line 44, in wrapper
ret = method(*args, **kwargs)
File “/home/frappe/frappe-bench/apps/frappe/frappe/migrate.py”, line 152, in post_schema_updates
frappe.get_attr(fn)()
File “/home/frappe/frappe-bench/apps/crm/crm/fcrm/doctype/fcrm_settings/fcrm_settings.py”, line 32, in after_migrate
sync_table(“dropdown_items”, “standard_dropdown_items”)
File “/home/frappe/frappe-bench/apps/crm/crm/fcrm/doctype/fcrm_settings/fcrm_settings.py”, line 44, in sync_table
crm_settings.append(key, item, count)
TypeError: BaseDocument.append() takes from 2 to 3 positional arguments but 4 were given
frappe@tif:~/frappe-bench/apps$

Not able to replicate same on my side.

Is this resolved

BaseDocument.append() Check this properly…

Same issue for us

Detailed traceback:

Traceback with variables (most recent call last):
  File "/home/frappe/.pyenv/versions/3.10.5/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
      mod_name = 'frappe.utils.bench_helper'
      alter_argv = True
      mod_spec = ModuleSpec(name='frappe.utils.bench_helper', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f81b2502260>, origin='/workspace/development/frappe-bench-v15/apps/frappe/frappe/utils/bench_helper.py')
      code = <code object <module> at 0x7f81b0ff2600, file "/workspace/development/frappe-bench-v15/apps/frappe/frappe/utils/bench_helper.py", line 1>
      main_globals = {'__name__': '__main__', '__doc__': None, '__package__': 'frappe.utils', '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7f81b2502260>, '__spec__': ModuleSpec(name='frappe.utils.bench_helper', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f81b2502260>, origin='/workspace/development/frappe-bench-v15/apps/frappe/frappe/utils/bench_helper.py'), '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/workspace/development/frappe-bench-v15/apps/frappe/frappe/utils/bench_helper.py', '__cached__': '/workspace/development/frappe-bench-v15/apps/frappe/frappe/utils/__pycache__/bench_helper.cpython-310.pyc', 'importlib': <module 'importlib' from '/home/frappe/.pyenv/versions/3.10.5/lib/python3.10/importlib/__init__.py'>, 'json': <module 'json' from '/home/frappe/.pyenv/versions/3.10.5/lib/python3.10/json/__init__.py'>, 'os': <module 'os' from '/home/frappe/.pyenv/versions/3.10.5/lib/python3.10/os.py'>, 'traceback': <module 't...
  File "/home/frappe/.pyenv/versions/3.10.5/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
      code = <code object <module> at 0x7f81b0ff2600, file "/workspace/development/frappe-bench-v15/apps/frappe/frappe/utils/bench_helper.py", line 1>
      run_globals = {'__name__': '__main__', '__doc__': None, '__package__': 'frappe.utils', '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7f81b2502260>, '__spec__': ModuleSpec(name='frappe.utils.bench_helper', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f81b2502260>, origin='/workspace/development/frappe-bench-v15/apps/frappe/frappe/utils/bench_helper.py'), '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/workspace/development/frappe-bench-v15/apps/frappe/frappe/utils/bench_helper.py', '__cached__': '/workspace/development/frappe-bench-v15/apps/frappe/frappe/utils/__pycache__/bench_helper.cpython-310.pyc', 'importlib': <module 'importlib' from '/home/frappe/.pyenv/versions/3.10.5/lib/python3.10/importlib/__init__.py'>, 'json': <module 'json' from '/home/frappe/.pyenv/versions/3.10.5/lib/python3.10/json/__init__.py'>, 'os': <module 'os' from '/home/frappe/.pyenv/versions/3.10.5/lib/python3.10/os.py'>, 'traceback': <module 't...
      init_globals = None
      mod_name = '__main__'
      mod_spec = ModuleSpec(name='frappe.utils.bench_helper', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f81b2502260>, origin='/workspace/development/frappe-bench-v15/apps/frappe/frappe/utils/bench_helper.py')
      pkg_name = 'frappe.utils'
      script_name = None
      loader = <_frozen_importlib_external.SourceFileLoader object at 0x7f81b2502260>
      fname = '/workspace/development/frappe-bench-v15/apps/frappe/frappe/utils/bench_helper.py'
      cached = '/workspace/development/frappe-bench-v15/apps/frappe/frappe/utils/__pycache__/bench_helper.cpython-310.pyc'
  File "/workspace/development/frappe-bench-v15/apps/frappe/frappe/utils/bench_helper.py", line 114, in <module>
    main()
      ...skipped... 27 vars
  File "/workspace/development/frappe-bench-v15/apps/frappe/frappe/utils/bench_helper.py", line 20, in main
    click.Group(commands=commands)(prog_name="bench")
      commands = {'frappe': <Group frappe>, 'get-frappe-commands': <Command get-frappe-commands>, 'get-frappe-help': <Command get-frappe-help>}
  File "/workspace/development/frappe-bench-v15/env/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
      self = <Group None>
      args = ()
      kwargs = {'prog_name': 'bench'}
  File "/workspace/development/frappe-bench-v15/env/lib/python3.10/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
      self = <Group None>
      args = ['frappe', '--site', 'starpops.localhost', 'migrate']
      prog_name = 'bench'
      complete_var = None
      standalone_mode = True
      windows_expand_args = True
      extra = {}
      ctx = <click.core.Context object at 0x7f81b0fbe3e0>
  File "/workspace/development/frappe-bench-v15/env/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
      _process_result = <function MultiCommand.invoke.<locals>._process_result at 0x7f81b0ff93f0>
      args = ['migrate']
      cmd_name = 'frappe'
      cmd = <Group frappe>
      sub_ctx = <click.core.Context object at 0x7f81afb31690>
      ctx = <click.core.Context object at 0x7f81b0fbe3e0>
      self = <Group None>
      __class__ = <class 'click.core.MultiCommand'>
  File "/workspace/development/frappe-bench-v15/env/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
      _process_result = <function MultiCommand.invoke.<locals>._process_result at 0x7f81afb40ca0>
      args = []
      cmd_name = 'migrate'
      cmd = <Command migrate>
      sub_ctx = <click.core.Context object at 0x7f81afb31d80>
      ctx = <click.core.Context object at 0x7f81afb31690>
      self = <Group frappe>
      __class__ = <class 'click.core.MultiCommand'>
  File "/workspace/development/frappe-bench-v15/env/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
      self = <Command migrate>
      ctx = <click.core.Context object at 0x7f81afb31d80>
  File "/workspace/development/frappe-bench-v15/env/lib/python3.10/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
      _Context__self = <click.core.Context object at 0x7f81afb31d80>
      _Context__callback = <function migrate at 0x7f81b103cd30>
      args = ()
      kwargs = {'skip_failing': False, 'skip_search_index': False}
      ctx = <click.core.Context object at 0x7f81afb31d80>
  File "/workspace/development/frappe-bench-v15/env/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
      args = ()
      kwargs = {'skip_failing': False, 'skip_search_index': False}
      f = <function migrate at 0x7f81b103caf0>
  File "/workspace/development/frappe-bench-v15/apps/frappe/frappe/commands/__init__.py", line 29, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
      ctx = <click.core.Context object at 0x7f81afb31d80>
      args = ()
      kwargs = {'skip_failing': False, 'skip_search_index': False}
      profile = False
      f = <function migrate at 0x7f81b103ca60>
  File "/workspace/development/frappe-bench-v15/apps/frappe/frappe/commands/site.py", line 613, in migrate
    SiteMigration(
      context = {'sites': ['starpops.localhost'], 'force': False, 'verbose': False, 'profile': False}
      skip_failing = False
      skip_search_index = False
      activate_by_import = <module 'traceback_with_variables.activate_by_import' from '/workspace/development/frappe-bench-v15/env/lib/python3.10/site-packages/traceback_with_variables/activate_by_import.py'>
      SiteMigration = <class 'frappe.migrate.SiteMigration'>
      site = 'starpops.localhost'
  File "/workspace/development/frappe-bench-v15/apps/frappe/frappe/migrate.py", line 187, in run
    self.post_schema_updates()
      self = <frappe.migrate.SiteMigration object at 0x7f81afb31ea0>
      site = 'starpops.localhost'
      filelock = <function filelock at 0x7f81858d35b0>
  File "/workspace/development/frappe-bench-v15/apps/frappe/frappe/migrate.py", line 52, in wrapper
    raise e
      args = (<frappe.migrate.SiteMigration object at 0x7f81afb31ea0>,)
      kwargs = {}
      method = <function SiteMigration.post_schema_updates at 0x7f81858d31c0>
  File "/workspace/development/frappe-bench-v15/apps/frappe/frappe/migrate.py", line 44, in wrapper
    ret = method(*args, **kwargs)
      args = (<frappe.migrate.SiteMigration object at 0x7f81afb31ea0>,)
      kwargs = {}
      method = <function SiteMigration.post_schema_updates at 0x7f81858d31c0>
  File "/workspace/development/frappe-bench-v15/apps/frappe/frappe/migrate.py", line 152, in post_schema_updates
    frappe.get_attr(fn)()
      self = <frappe.migrate.SiteMigration object at 0x7f81afb31ea0>
      app = 'crm'
      fn = 'crm.fcrm.doctype.fcrm_settings.fcrm_settings.after_migrate'
  File "/workspace/development/frappe-bench-v15/apps/crm/crm/fcrm/doctype/fcrm_settings/fcrm_settings.py", line 32, in after_migrate
    sync_table("dropdown_items", "standard_dropdown_items")
  File "/workspace/development/frappe-bench-v15/apps/crm/crm/fcrm/doctype/fcrm_settings/fcrm_settings.py", line 44, in sync_table
    crm_settings.append(key, item, count)
      key = 'dropdown_items'
      hook = 'standard_dropdown_items'
      crm_settings = <FCRMSettings: FCRM Settings>
      existing_items = {}
      count = 0
      item = {'name1': 'app_selector', 'label': 'Apps', 'type': 'Route', 'route': '#', 'is_standard': 1}
      new_standard_items = {}
builtins.TypeError: BaseDocument.append() takes from 2 to 3 positional arguments but 4 were given

In classic frappe style, we have to figure out version compatibility between different apps ourselves.

It seems that crm > v1.29.0 is not compatible with frappe < v15.51.1, because of this change: