Skip to content

Error raised when using even an empty monitor #7058

@hujay2019

Description

@hujay2019

AiiDA version: 2.7.1

Description

When I try to use a monitor — even an empty one — an error is raised.

Minimal example to reproduce

Entry point definition in pyproject.toml:

[project.entry-points."aiida.calculations.monitors"]
"mymonitors.empty_monitor" = "myproject.mymonitors:empty_monitor"

Definition of the monitor (myproject/mymonitors.py):

def empty_monitor(node, transport):
    return None

Main script:

from aiida import orm, engine, load_profile
from aiida_quantumespresso.workflows.pw.base import PwBaseWorkChain
from ase.build import bulk
load_profile()
structure=orm.StructureData(ase=bulk("Si","fcc",5.43))
code=orm.load_code("pw@localhost")
builder=PwBaseWorkChain.get_builder_from_protocol(code=code,structure=structure,protocol="fast")
builder.pw.monitors={"mymonitor":orm.Dict(dict={"entry_point":"mymonitors.empty_monitor"})}
results=engine.run(builder)
print(results["output_parameters"]["energy"])

Error message:

10/08/2025 11:31:14 PM <309278> aiida.broker.rabbitmq: [WARNING] RabbitMQ v4.1.4 is not supported and will cause unexpected problems!
10/08/2025 11:31:14 PM <309278> aiida.broker.rabbitmq: [WARNING] It can cause long-running workflows to crash and jobs to be submitted multiple times.
10/08/2025 11:31:14 PM <309278> aiida.broker.rabbitmq: [WARNING] See https://github.com/aiidateam/aiida-core/wiki/RabbitMQ-version-to-use for details.
10/08/2025 11:31:15 PM <309278> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [134|PwBaseWorkChain|on_except]: Traceback (most recent call last):
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/process_states.py", line 250, in execute
    result = await self.run_fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/utils.py", line 210, in wrap
    return coro_or_fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/processes/workchains/workchain.py", line 319, in _do_step
    finished, stepper_result = self._stepper.step()
                               ^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/workchains.py", line 305, in step
    finished, result = self._child_stepper.step()
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/workchains.py", line 548, in step
    finished, result = self._child_stepper.step()
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/workchains.py", line 305, in step
    finished, result = self._child_stepper.step()
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/workchains.py", line 258, in step
    return True, self._fn(self._workchain)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/processes/workchains/restart.py", line 210, in run_process
    node = self.submit(self.process_class, **inputs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/processes/process.py", line 595, in submit
    return self.runner.submit(process, inputs, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/runners.py", line 189, in submit
    process_inited = self.instantiate_process(process, **inputs)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/runners.py", line 174, in instantiate_process
    return instantiate_process(self, process, **inputs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/utils.py", line 86, in instantiate_process
    process = process_class(runner=runner, inputs=inputs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/base/state_machine.py", line 205, in __call__
    inst.transition_to(inst.create_initial_state())
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/base/state_machine.py", line 357, in transition_to
    self.transition_failed(initial_state_label, label, *sys.exc_info()[1:])
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/processes.py", line 1095, in transition_failed
    raise exception.with_traceback(trace)
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/base/state_machine.py", line 343, in transition_to
    self._enter_next_state(new_state)
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/base/state_machine.py", line 410, in _enter_next_state
    self._fire_state_event(StateEventHook.ENTERING_STATE, next_state)
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/base/state_machine.py", line 311, in _fire_state_event
    callback(self, hook, state)
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/processes.py", line 358, in <lambda>
    state_machine.StateEventHook.ENTERING_STATE: lambda _s, _h, state: self.on_entering(
                                                                       ^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/processes.py", line 725, in on_entering
    call_with_super_check(self.on_create)
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/base/utils.py", line 31, in call_with_super_check
    wrapped(*args, **kwargs)
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/processes/process.py", line 459, in on_create
    self._pid = self._create_and_setup_db_record()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/processes/process.py", line 657, in _create_and_setup_db_record
    self._setup_db_record()
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/processes/process.py", line 770, in _setup_db_record
    self._setup_version_info()
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/processes/calcjobs/calcjob.py", line 602, in _setup_version_info
    version_info['version'].setdefault('monitors', {})[key] = monitor_version_info['version']['plugin']
                                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
KeyError: 'plugin'

10/08/2025 11:31:15 PM <309278> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [134|PwBaseWorkChain|on_terminated]: remote folders will not be cleaned
Traceback (most recent call last):
  File "/home/hu/tmp/myproject/run_task.py", line 9, in <module>
    results=engine.run(builder)
            ^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/launch.py", line 48, in run
    return runner.run(process, inputs, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/runners.py", line 277, in run
    result, _ = self._run(process, inputs, **kwargs)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/runners.py", line 261, in _run
    process_inited.execute()
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/processes.py", line 101, in func_wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/processes.py", line 1313, in execute
    return self.future().result()
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/process_states.py", line 250, in execute
    result = await self.run_fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/utils.py", line 210, in wrap
    return coro_or_fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/processes/workchains/workchain.py", line 319, in _do_step
    finished, stepper_result = self._stepper.step()
                               ^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/workchains.py", line 305, in step
    finished, result = self._child_stepper.step()
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/workchains.py", line 548, in step
    finished, result = self._child_stepper.step()
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/workchains.py", line 305, in step
    finished, result = self._child_stepper.step()
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/workchains.py", line 258, in step
    return True, self._fn(self._workchain)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/processes/workchains/restart.py", line 210, in run_process
    node = self.submit(self.process_class, **inputs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/processes/process.py", line 595, in submit
    return self.runner.submit(process, inputs, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/runners.py", line 189, in submit
    process_inited = self.instantiate_process(process, **inputs)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/runners.py", line 174, in instantiate_process
    return instantiate_process(self, process, **inputs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/utils.py", line 86, in instantiate_process
    process = process_class(runner=runner, inputs=inputs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/base/state_machine.py", line 205, in __call__
    inst.transition_to(inst.create_initial_state())
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/base/state_machine.py", line 357, in transition_to
    self.transition_failed(initial_state_label, label, *sys.exc_info()[1:])
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/processes.py", line 1095, in transition_failed
    raise exception.with_traceback(trace)
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/base/state_machine.py", line 343, in transition_to
    self._enter_next_state(new_state)
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/base/state_machine.py", line 410, in _enter_next_state
    self._fire_state_event(StateEventHook.ENTERING_STATE, next_state)
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/base/state_machine.py", line 311, in _fire_state_event
    callback(self, hook, state)
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/processes.py", line 358, in <lambda>
    state_machine.StateEventHook.ENTERING_STATE: lambda _s, _h, state: self.on_entering(
                                                                       ^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/processes.py", line 725, in on_entering
    call_with_super_check(self.on_create)
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/plumpy/base/utils.py", line 31, in call_with_super_check
    wrapped(*args, **kwargs)
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/processes/process.py", line 459, in on_create
    self._pid = self._create_and_setup_db_record()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/processes/process.py", line 657, in _create_and_setup_db_record
    self._setup_db_record()
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/processes/process.py", line 770, in _setup_db_record
    self._setup_version_info()
  File "/home/hu/tmp/myproject/.pixi/envs/default/lib/python3.12/site-packages/aiida/engine/processes/calcjobs/calcjob.py", line 602, in _setup_version_info
    version_info['version'].setdefault('monitors', {})[key] = monitor_version_info['version']['plugin']
                                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
KeyError: 'plugin'

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions