Repository: Farama-Foundation/Metaworld
Issue: [Bug Report] assembly-v3| Why did this task fail? After lifting the object to a certain height, it just stops and doesn’t move any farther.
Root cause: Configuration Error

### Describe the bug

https://github.com/user-attachments/assets/a88e5b10-9099-4efd-b07e-03e453d9cf45

### Code example

```shell
for env_name, task_description in task_env_dis.items():
        print(f"Collecting data for {env_name} with task description: {task_description}")
        # Create the environment instance directly (MT50_V3 classes already set up cameras internally)
        # env_name = 'push-v3' # debug
        env_cls = MT50_V3[env_name]
        print(env_cls)
        env = env_cls(camera_name=CAMERA_NAME, render_mode=RENDER_MODE)
        env._partially_observable = False
        env._freeze_rand_vec = False
        env._set_task_called = True
        env.max_path_length = MAX_EPISODE_STEPS


        policy_name = task_expert_env_policies[env_name]
        policy = globals()[policy_name]()
        print(f"{policy_name} policy loaded for {env_name}")

        task_path = os.path.join(save_path_root, env_name)
        if not os.path.exists(task_path):
            os.makedirs(task_path)
        print(f"Environment: {env_name}, Policy: {policy_name}")

        for e in range(EPISODES_NUMBER):
            print(f"Episode {e+1}/{EPISODES_NUMBER}")
            done = False
            step = 0  # step counter for this episode
            truncated = False

            obss = []
            acts = []
            rews = []
            dones = []
            images = []

            video_path = os.path.join(DEBUG_DIR, f"{env_name}_episode_{e:04d}.mp4")
            writer = None  # lazy init after first frame

            obs, info = env.reset()

            while not done and step < MAX_EPISODE_STEPS:

                obss.append(obs.copy())
                img = env.render()
                images = store_rendered_image(images, img)
                cv2.imwrite(os.path.join(DEBUG_DIR, f"step_{e:04d}_{step:04d}.png"), cv2.cvtColor(img, cv2.COLOR_RGB2BGR))

                # write debug video
                if writer is None:
                    writer = get_video_writer(video_path, img.shape)
                writer.write(cv2.cvtColor(img, cv2.COLOR_RGB2BGR))

                a = policy.get_action(obs)
                acts.append(a.copy())

                obs, rew, terminated, truncated, info = env.step(a)

                rews.append(rew)

                done = int(info['success']) == 1
                dones.append(done)
                # If Gymnasium indicates time‑limit truncation, treat as episode end
                if truncated:
                    print(f"Episode {e+1} truncated at step limit.")
                    done = True

                step += 1

                # if not done:  # Only render next frame if episode continues
                #     img = env.render()
                #     images = store_rendered_image(images, img)

                if done:
                    obss.append(obs.copy())
                    img = env.render()
                    images = store_rendered_image(images, img)
                    if writer is not None:
                        writer.release()
                    print(f"Episode {e+1} finished after {step} steps. Success flag: {info.get('success',0)}, truncated: {truncated}")
                    if info.get('success', 0) == 1:
                        success_task.append(env_name)
                    break
```

### System info

_No response_

### Additional context

_No response_

### Checklist

- [x] I have checked that there is no similar [issue](https://github.com/Farama-Foundation/Gymnasium/issues) in the repo


I changed things to use the new `gym.make` API and it works fine. When I use your code, I have that issue. I would recommend using the `gym.make` API. I've included my code below. 

```
import gymnasium as gym
import metaworld
import time


task_env_dis = {'assembly-v3': 'desc'}
EPISODES_NUMBER = 1
for env_name, task_description in task_env_dis.items():
        print(f"Collecting data for {env_name} with task description: {task_description}")
        # Create the environment instance directly (MT50_V3 classes already set up cameras internally)
        # env_name = 'push-v3' # debug
        env = gym.make('Meta-World/MT1', env_name=env_name, render_mode='human')
        #env_cls = MT50_V3[env_name]
        #print(env_cls)
        #env = env_cls(camera_name=CAMERA_NAME, render_mode=RENDER_MODE)
        #env._partially_observable = False
        #env._freeze_rand_vec = False
        #env._set_task_called = True
        #env.max_path_length = MAX_EPISODE_STEPS

        from metaworld.policies.sawyer_assembly_v3_policy import SawyerAssemblyV3Policy
        policy = SawyerAssemblyV3Policy()

        #policy_name = task_expert_env_policies[env_name]
        #policy = globals()[policy_name]()
        #print(f"{policy_name} policy loaded for {env_name}")

        #task_path = os.path.join(save_path_root, env_name)
        #if not os.path.exists(task_path):
        #    os.makedirs(task_path)
        #print(f"Environment: {env_name}, Policy: {policy_name}")

        for e in range(EPISODES_NUMBER):
            print(f"Episode {e+1}/{EPISODES_NUMBER}")
            done = False
            step = 0  # step counter for this episode
            truncated = False

            obss = []
            acts = []
            rews = []
            dones = []
            images = []

            #video_path = os.path.join(DEBUG_DIR, f"{env_name}_episode_{e:04d}.mp4")
            writer = None  # lazy init after first frame

            obs, info = env.reset()
            MAX_EPISODE_STEPS = 500
            env.render()
            while not done and step < MAX_EPISODE_STEPS:

                #obss.append(obs.copy())
                #img = env.render()
                #images = store_rendered_image(images, img)
                #cv2.imwrite(os.path.join(DEBUG_DIR, f"step_{e:04d}_{step:04d}.png"), cv2.cvtColor(img, cv2.COLOR_RGB2BGR))

                # write debug video
                #if writer is None:
                #    writer = get_video_writer(video_path, img.shape)
                #writer.write(cv2.cvtColor(img, cv2.COLOR_RGB2BGR))

                a = policy.get_action(obs)
                #acts.append(a.copy())

                obs, rew, terminated, truncated, info = env.step(a)
                env.render()
                time.sleep(0.01)
                #rews.append(rew)

                done = int(info['success']) == 1
                dones.append(done)
                # If Gymnasium indicates time‑limit truncation, treat as episode end
                #if truncated:
                #    print(f"Episode {e+1} truncated at step limit.")
                #    done = True

                step += 1

                # if not done:  # Only render next frame if episode continues
                #     img = env.render()
                #     images = store_rendered_image(images, img)

                '''if done:
                    obss.append(obs.copy())
                    img = env.render()
                    images = store_rendered_image(images, img)
                    if writer is not None:
                        writer.release()
                    print(f"Episode {e+1} finished after {step} steps. Success flag: {info.get('success',0)}, truncated: {truncated}")
                    if info.get('success', 0) == 1:
                        success_task.append(env_name)
                    break
                '''
```