---
title: MATCHMAKE_UNHANDLED error has occurred
slug: world-sdk-guide/matchmakeunhandled-error-has-occurred
docTags: 
createdAt: 2024-09-02T08:34:13.136Z
---

If MATCHMAKE\_UNHANDLED error occurs during QR test, try the method below to solve it.

::Image[]{src="https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-VONRI8py0RPyx8RTN4sHa-20240904-102412.png" size="76" width="542" height="328" position="center" showCaption="false"}



## Please check the Multiplay server script (index.ts).

- This error code may occur when the client does not smoothly receive Multiplay Room State data from the server after connecting to multiplay server.
- Refer to the tutorial below and check the code in the onCreate/onJoin part of the server script (index.ts).

:::hint{type="info"}
**📘&#x20;**&#x50;lease refer to the following guide. [ZEPETO Multiplay Tutorial](docId:-t5nIUngy1DInmcp5fKA3)&#x20;
:::



## Please update the ZEPETO WORLD SDK version to the latest version.

- Refer to the guide below to check if the ZEPETO WORLD SDK version is up to date, and then update to the latest version.

:::hint{type="info"}
**📘&#x20;**&#x50;lease refer to the following guide. [Update Package](docId\:JmcTVtq9CrT4-s9c9RBGj)&#x20;
:::



## Please check the Zepeto World Multiplay component.

- This error might occur if Zepeto World Multiplay components are present in different scenes.
- Add the Zepeto World Multiplay component to just one scene and follow the example code below to implement it as a singleton.

```typescript
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { GameObject } from 'UnityEngine';
 
export default class MultiplayComponent extends ZepetoScriptBehaviour {
 
    private static _instance: MultiplayComponent = null;
    public static get instance(): MultiplayComponent {
 
        // If an instance hasn't been created yet, perform the following logic.
        if (this._instance === null) {
 
            // Search for an instance of type MultiplayComponent within the scene.
            this._instance = GameObject.FindObjectOfType<MultiplayComponent>();
 
            // If no MultiplayComponent instance is found in the scene, perform the following logic.
            if (this._instance === null) {
                this._instance = new GameObject(MultiplayComponent.name).AddComponent<MultiplayComponent>();
            }
        }
        return this._instance;
    }
 
    private Awake() {
        // If another instance already exists and the current instance is different, execute the following logic.
        if (MultiplayComponent._instance !== null && MultiplayComponent._instance !== this) {
 
            // Destroy the current GameObject (with the current instance) to prevent duplicate instance creation.
            GameObject.Destroy(this.gameObject);
 
        // If no other instance exists or the current instance is the same, execute the following logic.
        } else {
            MultiplayComponent._instance = this;
            GameObject.DontDestroyOnLoad(this.gameObject);
        }
    }
}
```

