diff --git a/habitat/core/vector_env.py b/habitat/core/vector_env.py
index 124918264c540d50855c8eaf0637f4c8d668bc4f..67c405a4d214fc22b4725220f0040bc43d31aaf8 100644
--- a/habitat/core/vector_env.py
+++ b/habitat/core/vector_env.py
@@ -409,7 +409,7 @@ class VectorEnv:
         """Render observations from all environments in a tiled image.
         """
         for write_fn in self._connection_write_fns:
-            write_fn((args, {"mode": "rgb_array", **kwargs}))
+            write_fn((RENDER_COMMAND, (args, {"mode": "rgb", **kwargs})))
         images = [read_fn() for read_fn in self._connection_read_fns]
         tile = tile_images(images)
         if mode == "human":
diff --git a/test/test_habitat_env.py b/test/test_habitat_env.py
index 3229c9d989993ecaf8c44fc8463d12798b2ab87e..8d10f585597c35f43f35f3b76b06b9e9a64cc1ad 100644
--- a/test/test_habitat_env.py
+++ b/test/test_habitat_env.py
@@ -221,6 +221,7 @@ def test_rl_vectorized_envs():
         assert len(rewards) == num_envs
         assert len(dones) == num_envs
         assert len(infos) == num_envs
+        assert envs.render(mode="rgb_array"), "vector env render is broken"
         if (i + 1) % configs[0].ENVIRONMENT.MAX_EPISODE_STEPS == 0:
             assert all(dones), "dones should be true after max_episode steps"