---
title: MATCHMAKE_UNHANDLED 에러가 발생했어요
slug: world-sdk-guide-kr/matchmakeunhandled
docTags: 
createdAt: 2024-09-02T08:34:13.136Z
---

QR 테스트 중에 MATCHMAKE\_UNHANDLED 오류가 발생하면, 아래 방법을 시도하여 해결해 보세요.

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



## 멀티플레이 서버 스크립트(index.ts)를 확인해 주세요.

- 이 오류 코드는 클라이언트가 멀티플레이 서버에 연결한 후 서버로부터 멀티플레이 룸 상태 데이터를 원활하게 수신하지 못할 때 발생할 수 있습니다.
- 아래 튜토리얼을 참조하고 서버 스크립트(index.ts)의 onCreate/onJoin 부분의 코드를 확인하세요.

:::hint{type="info"}
**📘&#x20;**&#xB2E4;음 가이드를 참조해 주세요. [ZEPETO 멀티플레이 튜토리얼](docId\:S6aOeRnolpAc9cyQi_Onr)&#x20;
:::



## ZEPETO WORLD SDK 버전을 최신 버전으로 업데이트해 주세요.

- 아래 가이드를 참조하여 ZEPETO WORLD SDK 버전이 최신인지 확인한 후, 최신 버전으로 업데이트하세요.

:::hint{type="info"}
**📘&#x20;**&#xB2E4;음 가이드를 참조하세요. [패키지 업데이트하기](docId:-UIy5GKGW8I__J2GhA0jB)&#x20;
:::



## Zepeto World 멀티플레이 구성 요소를 확인하세요.

- Zepeto World 멀티플레이 구성 요소가 서로 다른 씬에 존재할 경우 이 오류가 발생할 수 있습니다.
- Zepeto World 멀티플레이 구성 요소를 하나의 씬에만 추가하고 아래의 예제 코드를 따라 싱글톤으로 구현하세요.

```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 (this._instance === null) {
 
            // 씬 내에서 MultiplayComponent 타입의 인스턴스를 검색합니다.
            this._instance = GameObject.FindObjectOfType<MultiplayComponent>();
 
            // 씬 내에 MultiplayComponent 인스턴스가 없으면, 다음 로직을 수행합니다.
            if (this._instance === null) {
                this._instance = new GameObject(MultiplayComponent.name).AddComponent<MultiplayComponent>();
            }
        }
        return this._instance;
    }
 
    private Awake() {
        // 다른 인스턴스가 이미 존재하고 현재 인스턴스가 다르면, 다음 로직을 실행합니다.
        if (MultiplayComponent._instance !== null && MultiplayComponent._instance !== this) {
 
            // 현재 GameObject(현재 인스턴스)를 파괴하여 중복 인스턴스 생성을 방지합니다.
            GameObject.Destroy(this.gameObject);
 
        // 다른 인스턴스가 존재하지 않거나 현재 인스턴스가 동일하면, 다음 로직을 실행합니다.
        } else {
            MultiplayComponent._instance = this;
            GameObject.DontDestroyOnLoad(this.gameObject);
        }
    }
}
```

