1. Severity of the issue: (select one)
High: Completely blocks me.
2. Environment:
- Ray version: 2.53.0
- Python version: 3.12
- OS: Windows 11
3. What happened vs. what you expected:
The MultiAgentReplayBuffer is not working and seems to have not been working for quite some time. I saw some other posts on here that have the same issue, but never found a solution.
config = (
DQNConfig()
.framework("torch")
.environment("sumo_marl", env_config=env_config)
.env_runners(
num_env_runners=1 if not DEBUG else 0,
num_envs_per_env_runner=1,
num_cpus_per_env_runner=3,
sample_timeout_s=50000,
)
.multi_agent(
policies=["shared"],
policy_mapping_fn=lambda agent_id, *a, **kw: "shared",
)
.learners(
num_learners=0,
num_cpus_per_learner=3,
)
.training(
gamma=0.99,
lr=1e-4,
# Wichtig: Warmup-Name in deiner Version
num_steps_sampled_before_learning_starts=20_000,
# Batchgröße kommt bei dir wie bei MAPPO über kwargs rein
train_batch_size=4096,
replay_buffer_config={
"_enable_replay_buffer_api": True,
"type": "MultiAgentReplayBuffer",
"capacity": 300_000,
},
target_network_update_freq=8000,
double_q=True,
dueling=True,
n_step=1,
epsilon=EPS_SCHEDULE,
)
.callbacks(MetricsLoggerCallback)
.debugging(seed=SEED)
)
This config results in this exception:
2026-01-14 21:48:29,784 ERROR tune_controller.py:1331 -- Trial task failed for trial DQN_sumo_marl_54156_00000
Traceback (most recent call last):
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\air\execution\_internal\event_manager.py", line 110, in resolve_future
result = ray.get(future)
^^^^^^^^^^^^^^^
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\_private\auto_init_hook.py", line 22, in auto_init_wrapper
return fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\_private\client_mode_hook.py", line 104, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\_private\worker.py", line 2967, in get
values, debugger_breakpoint = worker.get_objects(
^^^^^^^^^^^^^^^^^^^
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\_private\worker.py", line 1015, in get_objects
raise value.as_instanceof_cause()
ray.exceptions.RayTaskError(AttributeError): ray::DQN.train() (pid=106336, ip=127.0.0.1, actor_id=90a818058acadd367bed5c9401000000, repr=DQN(env=sumo_marl; env-runners=1; learners=0; multi-agent=True))
File "python\\ray\\_raylet.pyx", line 1722, in ray._raylet.execute_task
File "python\\ray\\_raylet.pyx", line 1665, in ray._raylet.execute_task.function_executor
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\_private\function_manager.py", line 693, in actor_method_executor
return method(__ray_actor, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\util\tracing\tracing_helper.py", line 461, in _resume_span
return method(self, *_args, **_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\tune\trainable\trainable.py", line 331, in train
raise skipped from exception_cause(skipped)
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\tune\trainable\trainable.py", line 328, in train
result = self.step()
^^^^^^^^^^^
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\util\tracing\tracing_helper.py", line 461, in _resume_span
return method(self, *_args, **_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\rllib\algorithms\algorithm.py", line 1242, in step
train_results, train_iter_ctx = self._run_one_training_iteration()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\util\tracing\tracing_helper.py", line 461, in _resume_span
return method(self, *_args, **_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\rllib\algorithms\algorithm.py", line 3666, in _run_one_training_iteration
training_step_return_value = self.training_step()
^^^^^^^^^^^^^^^^^^^^
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\util\tracing\tracing_helper.py", line 461, in _resume_span
return method(self, *_args, **_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\rllib\algorithms\dqn\dqn.py", line 646, in training_step
return self._training_step_new_api_stack()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\util\tracing\tracing_helper.py", line 461, in _resume_span
return method(self, *_args, **_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\rllib\algorithms\dqn\dqn.py", line 668, in _training_step_new_api_stack
self.local_replay_buffer.add(episodes)
File "E:\Users\julia\Desktop\Studium\Master\Masterarbeit\TrafficSignalMARL\venv\Lib\site-packages\ray\rllib\utils\replay_buffers\multi_agent_replay_buffer.py", line 224, in add
batch = batch.as_multi_agent()
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'as_multi_agent'