Bloga Dön

Oturum Başlatma Neden Time Out Olur: 'Failed to Connect to Beacon' UEFN Handshake Hatasını Çözmek

Yayınlanma tarihi 9 Haziran 2026
Oturum Başlatma Neden Time Out Olur: 'Failed to Connect to Beacon' UEFN Handshake Hatasını Çözmek

Özet olarak

Bu rehber, Unreal Editor for Fortnite (UEFN) oturum başlatma aşamasında sıkça karşılaşılan "Failed to connect to beacon" handshake hatasının teknik nedenlerini ve pratik çözümlerini ele almaktadır. UDP handshake protokolünün işleyişini inceleyerek paket kaybı, sürüm uyuşmazlığı ve firewall engeli gibi kararlılık sorunlarını analiz eder. Geliştiricilere PowerShell komutlarından DefaultEngine.ini yapılandırmalarına kadar adım adım bir sorun giderme kılavuzu sunar. Ayrıca, horizOn gibi platformların bu karmaşık Dedicated Server altyapılarını nasıl kolaylaştırdığına değinir.

Her Multiplayer geliştiricisi, bir playtest oturumu başlatırken ilerleme çubuğunun donmasını izlemenin ve sonunda genel bir Matchmaking hatası almanın verdiği o moral bozucu hissi yakından bilir. Unreal Editor for Fortnite (UEFN) ortamında bu hayal kırıklığı genellikle engelleyici ve spesifik bir log hatası olarak kendini gösterir: "Failed to connect to beacon. Your backend is: Fortnite Your Build is: ++Fortnite+Release-41.00-CL-54618515 Region: BR BuildIdOverride is: 53972989". Bu hata, içerik üreticilerinin test sunucularına saatlerce erişememesine yol açarak yerel iterasyon döngülerini durdurur ve geliştirme takvimlerini sekteye uğratır.

Bu bağlantı başarısızlığı nadiren basit bir internet kesintisinden kaynaklanır. Bunun yerine, Unreal Engine'in oyun asset'lerini yüklemeden önce oyuncu oturumlarını koordine etmek için kullandığı ilk UDP handshake protokolündeki bir kesintiye işaret eder. Bu kararlılık engelini çözmek için geliştiricilerin, Unreal Engine'in online beacon mekanizmasının arka planda nasıl çalıştığını, Epic Games'in Matchmaking altyapısının yerel istemcilerle nasıl etkileşime girdiğini ve paket kayıplarını (packet loss) önlemek için yerel ağları nasıl yapılandıracaklarını anlamaları gerekir.

Unreal Engine Beacon'ları Arka Planda Nasıl Çalışır?

Hafif Sıklet UDP Handshake ve Full Game Travel Karşılaştırması

Tüm seviyeyi (UWorld) yükleyen ve çoğaltılmış (replicated) tüm aktörleri ana net driver üzerinden serialize eden standart oyun içi bağlantıların aksine, online beacon'lar AOnlineBeaconHost ve AOnlineBeaconClient kullanarak hafif sıklet bir UDP kontrol kanalı kurar. Bu mimari, sunucu slotlarının uygunluğunu sorgular, rezervasyon taleplerini yönetir ve minimum bant genişliği kullanarak özel telemetri verilerini değiş tokuş eder. UEFN'de, harita yükleme işlemini başlatmadan önce istemcinin sürümünün eşleştiğini doğrulamak için bir Matchmaking beacon'ı devreye sokulur. Motor, ayrı bir socket kanalı oluşturarak, sunucunun dolu olması veya uyumsuz bir build çalıştırması durumunda tam bir player controller oluşturma ve hedef seviyeye seyahat etme (travel) ek yükünden (overhead) kaçınmış olur.

UEFN Matchmaking Yaşam Döngüsü

UEFN'de Launch Session butonuna bastığınızda, editör projenizin mevcut build'ini çalıştıran bir Dedicated Server instance'ı bulmak veya ayağa kaldırmak için Epic'in Matchmaking sunucularıyla haberleşir. Matchmaking Backend'i, içinde bir IP adresi, dinamik bir port ve benzersiz bir şifreli oturum token'ı barındıran bir bağlantı dizesi (connection string) döndürür. Yerel bilgisayarınızdaki UEFN istemcisi, bu uzak instance ile handshake gerçekleştirmek üzere bir beacon istemcisi başlatır. Eğer bu handshake başarılı olursa, istemcinin geçişine (travel) onay verilir ve istemci pişirilmiş (cooked) harita asset'lerini indirmeye başlar. failed to connect to beacon uefn gibi bir ağ hatası oluştuğunda, handshake henüz bu ön kontrol aşamasında başarısız olur ve istemcinin tam seyahat (travel) dizisini başlatmasını engeller.

Eğer oturumunuz başlatılamıyor ve başarısız olmadan önce birkaç dakika boyunca yükleme ekranında takılı kalıyorsa, genellikle yanlış yapılandırılmış ağ sürücüleri veya sanal ağ bağdaştırıcıları ile ilişkili olan UEFN session launch timeout nightmares sorununu yaşıyor olabilirsiniz.

UEFN Oturumları Neden "Failed to Connect to Beacon" Hatası Verir?

1. Paket Kaybı (Packet Loss) ve Bölgesel Yönlendirme (Routing) Hatası

Epic'in Backend sistemi, UEFN playtest oturumlarını dinamik olarak bölgesel bulut instance'larına (Kuzey Amerika Doğu, Avrupa veya Brezilya gibi) yönlendirir. Bölgesel ISP yönlendirmeniz %2'yi aşan bir paket kaybı (packet loss) yaşıyorsa veya handshake sırasında gecikme süreniz (latency) 180 ms'nin üzerine çıkıyorsa, beacon isteğini içeren UDP paketleri düşecektir (dropped). Beacon istemcisinin katı bir bağlantı zaman aşımı süresi (Connection Timeout - genellikle 15.0 saniye) vardır. Sunucunun handshake onayını (acknowledgment) içeren paket bu süre zarfında ulaşmazsa, istemci bağlantıyı sonlandırır ve bu da "failed to connect" hata mesajına yol açar.

Yönlendirmedeki paket kaybını doğrulamak için geliştiriciler, Epic hizmetlerine bir traceroute veya pathping çalıştırabilir. Örneğin, komut satırında pathping qnet.epicgames.com komutunu çalıştırmak, 250 saniyelik bir süre boyunca her bir ağ geçidine (network hop) 100 kez ping atacaktır. ISP ağınızın sınırında %1'den fazla paket kaybı gösteren bir geçiş fark ederseniz, UDP handshake işlemleri TCP'ye kıyasla son derece hassas olduğundan, oturum başlatma sırasında beacon bağlantısı başarısız olacaktır.

UEFN editörü bir bağlantı isteği gönderdiğinde, bir dizi UDP paketi yollar. Unreal Engine'in güvenilir kanal protokolü (reliable channel protocol), gönderilen her kontrol paketi için bir onay (ACK) paketi bekler. Yerel ISP'niz trafiği yoğun okyanus aşırı kablolar veya yanlış yapılandırılmış düğümler (nodes) üzerinden yönlendiriyorsa, bu UDP paketleri herhangi bir ICMP hata mesajı verilmeden sessizce düşer. Editör, dahili bağlantı zaman aşımı zamanlayıcısı sona erene kadar bekleme durumunda kalır ve gerekli handshake işlemleri hiçbir zaman tamamlanmadığı için bir Matchmaking hatası bildirir.

2. Sürüm Uyuşmazlıkları ve Build ID Farklılıkları

Büyük Fortnite motor güncellemeleri sırasında (örneğin Release-41.00 sürümüne geçişte), Epic'in Backend sunucuları ve yerel UEFN kurulumları geçici olarak senkronizasyon dışı kalabilir. BuildIdOverride parametresi (örneğin 53972989), proje asset'lerinin belirli derleme tanımlayıcısını (compilation identifier) temsil eder. Eğer Matchmaking sunucusu, editör oturumunuzu farklı bir Build ID veya CL (Changelist) sürümü çalıştıran bir host instance'a bağlamaya çalışırsa, beacon sunucusu bağlantıyı aktif olarak reddedecektir. Host socket'i, uyumsuz bir istemciyle handshake işlemini tamamlamayı reddettiği için istemci bu reddi bir bağlantı hatası olarak kaydeder.

3. UDP Port Tükenmesi ve Yerel Firewall Engellemeleri

Unreal Engine beacon'ları dinamik UDP portları üzerinden haberleşir. Standart oyunlar varsayılan olarak 7777 portunu kullanırken, UEFN oturumları eşzamanlı sunucu instance'larını yönetmek için rutin olarak geçici (ephemeral) aralıktaki (10000 ile 65535 arası) portları tahsis eder. Yerel yönlendiriciniz kısıtlayıcı bir simetrik NAT kullanıyorsa veya Windows Firewall'unuz standart dışı portlardaki talep edilmemiş giden UDP paketlerini düşürecek şekilde yapılandırılmışsa, beacon handshake işlemleri sessizce engellenecektir. İstemci socket'i, zaman aşımına uğrayana kadar Connecting durumunda kalacak ve bir Matchmaking hatası bildirecektir.

Yerel test oturumlarında UEFN, yerel bir loopback portuna bağlanması gereken ve aynı zamanda Epic'in uzak Matchmaking sunucularıyla iletişim kuran yerel bir Fortnite istemci instance'ı başlatır. Çalışan birden fazla editör instance'ınız varsa veya çöken arka plan süreçleri hala yerel portları meşgul ediyorsa, port tükenmesiyle (port exhaustion) karşılaşırsınız. Yerel ağ sürücüsü geçici port aralığında bir socket tahsis edemediğinde, istemci giden bağlantıyı bile başlatamaz; bu da ağ arabirim kartınızdan (NIC) herhangi bir paket çıkmadan önce sessiz bir hataya yol açar.

Uç durumlarda, sunucu tarafındaki kaynak tükenmesi beacon host'unun yanıt vermesini tamamen engelleyebilir ve bu da socket düşmesine (socket drop) neden olabilir. Eğer Dedicated Server'ınız optimize edilmemiş oynanış kodları nedeniyle tamamen kilitlendiyse, sunucu tarafındaki tick'leri kararlı hale getirmek için ultimate UEFN server crash fix protocol protokolünü inceleyin.

Derinlemesine İnceleme: Beacon Bağlantı Kodunun Analizi

Motorun bu durumları nasıl yönettiğini anlamak için Unreal Engine'deki tipik bir AOnlineBeaconClient uygulamasına göz atalım. Bu C++ sınıfı, socket başlatılmasını, bağlantı handshake sürecini ve zaman aşımı yönetimini kontrol eder.

// Source: CustomBeaconClient.h
#pragma once

#include "CoreMinimal.h"
#include "OnlineBeaconClient.h"
#include "CustomBeaconClient.generated.h"

UCLASS()
class MYMULTIPLAYERGAME_API ACustomBeaconClient : public AOnlineBeaconClient
{
    GENERATED_BODY()

public:
    ACustomBeaconClient();

    // Initiates the connection to the host beacon
    bool ConnectToSessionHost(const FString& ConnectURL, float TimeoutSeconds);

    // Override connection failure handlers
    virtual void OnFailure() override;
    virtual void OnConnectionTimeout() override;

protected:
    // Handle completed handshake response from the server host
    virtual void OnBeaconHandshakeComplete();
};

// Source: CustomBeaconClient.cpp
#include "CustomBeaconClient.h"
#include "OnlineSubsystemUtils.h"

ACustomBeaconClient::ACustomBeaconClient()
{
    // Default fallback timeout in seconds
    ConnectionTimeout = 15.0f;
}

bool ACustomBeaconClient::ConnectToSessionHost(const FString& ConnectURL, float TimeoutSeconds)
{
    ConnectionTimeout = TimeoutSeconds;
    
    FURL URL(nullptr, *ConnectURL, TRAVEL_Absolute);
    if (URL.Valid)
    {
        UE_LOG(LogNet, Log, TEXT("Initiating beacon handshake to URL: %s with timeout: %.2f seconds"), *ConnectURL, ConnectionTimeout);
        return ConnectToHost(URL);
    }
    
    UE_LOG(LogNet, Warning, TEXT("Failed to parse connection URL for beacon client: %s"), *ConnectURL);
    return false;
}

void ACustomBeaconClient::OnFailure()
{
    UE_LOG(LogNet, Error, TEXT("Beacon handshake failed. Internal network state: %s"), *GetConnectionStateString());
    Super::OnFailure();
}

void ACustomBeaconClient::OnConnectionTimeout()
{
    UE_LOG(LogNet, Error, TEXT("Beacon connection timed out after %.2f seconds. Diagnostic: UDP packets blocked or server unresponsive."), ConnectionTimeout);
    Super::OnConnectionTimeout();
}

DefaultEngine.ini Dosyasındaki Network Yapılandırma Düzenlemeleri

UEFN içerik üreticileri Epic'in Backend C++ kodlarını değiştiremeseler de, özel Unreal Engine projeleri üzerinde çalışan geliştiriciler, beacon eşiklerini doğrudan projelerinin yapılandırma dosyalarından ayarlayabilirler. Bu değerlerin ayarlanması, daha yavaş ağlara sahip istemcilerin handshake işlemlerini başarıyla tamamlamasına olanak tanır:

[/Script/OnlineSubsystemUtils.OnlineBeaconClient]
ConnectionTimeout=25.0
BeaconConnectionInitialTimeout=10.0

[/Script/OnlineSubsystemUtils.OnlineBeaconHost]
BeaconPort=15000
MaxConcurrentConnections=256

ConnectionTimeout değerinin 15.0 saniyeden 25.0 saniyeye yükseltilmesi, yüksek gecikmeli ağlardaki (uydu interneti veya uzun mesafeli bölgesel yönlendirmeler gibi) oyuncular için kritik bir tampon sağlayarak erken socket sonlandırılmasını önler.

"Failed to Connect to Beacon" Hatasını Düzeltmek İçin Adım Adım Rehber

Eğer bu hata nedeniyle sürekli UEFN oturumlarının dışında kalıyorsanız, ağ yığınınızı (network stack) doğrulamak ve düzeltmek için aşağıdaki sorun giderme adımlarını takip edin:

Adım 1: Giden UDP Firewall Kurallarını Yapılandırın

Bir güncelleme sırasında UEFN çalıştırılabilir dosyasının (executable) izinleri bozulursa, Windows Firewall geçici UDP portları üzerindeki giden trafiği engelleyebilir. Gerekli kuralları otomatik olarak oluşturmak için aşağıdaki PowerShell betiğini Yönetici olarak çalıştırın:

# Define the target executable path for UEFN
$UefnPath = "C:\Program Files\Epic Games\Fortnite\Engine\Binaries\Win64\UnrealEditor.exe"

# Configure Outbound Allow Rule for UDP traffic
New-NetFirewallRule -DisplayName "Allow UEFN Outbound UDP" `
    -Direction Outbound `
    -Program $UefnPath `
    -Protocol UDP `
    -Action Allow `
    -Enabled True

# Configure Inbound Allow Rule for UDP traffic
New-NetFirewallRule -DisplayName "Allow UEFN Inbound UDP" `
    -Direction Inbound `
    -Program $UefnPath `
    -Protocol UDP `
    -Action Allow `
    -Enabled True

Adım 2: DNS Temizleyin ve TCP/IP Yığınını Sıfırlayın

Bozulmuş DNS önbellekleri veya yanlış yapılandırılmış Winsock katalogları, Epic'in Matchmaking düğümlerine giden UDP paket yönlendirmesini bozabilir.

  1. PowerShell veya Komut İstemi'ni yönetici olarak açın.
  2. Aşağıdaki komutları sırasıyla çalıştırın:
    ipconfig /flushdns
    netsh int ip reset
    netsh winsock reset
    
  3. Yapılandırma sıfırlamalarını uygulamak ve ağ bağdaştırıcılarını yeniden başlatmak için bilgisayarınızı yeniden başlatın.

Adım 3: Epic Games Launcher ve UEFN Önbelleklerini Temizleyin

Yerel önbellek uyuşmazlıkları, oturum görüşmesi (session negotiation) sırasında launcher'ın güncel olmayan kimlik bilgileri veya eşleşmeyen Build ID'ler göndermesine neden olabilir.

  1. Epic Games Launcher ve UEFN'i tamamen kapatın.
  2. Win + R tuşlarına basın, %localappdata% yazıp Enter tuşuna basın.
  3. EpicGamesLauncher klasörünü bulun ve Saved dizinine gidin. webcache klasörünü silin.
  4. UnrealEditorFortnite klasörünü bulun ve Saved dizinine gidin. Temiz bir build yapılandırması yeniden derlemesi sağlamak için Crashes, Logs ve StagedBuilds dizinlerini silin.

Adım 4: Yeniden Kimlik Doğrulayın ve Build Senkronizasyonunu Zorlayın

Eğer UEFN eski bir kimlik doğrulama (authentication) token'ı tutuyorsa, Epic'in beacon sunucusu bağlantı girişimlerini reddedecektir.

  1. Epic Games Launcher'ı açın, profil simgenize tıklayın ve hesabınızdan çıkış yapın.
  2. Launcher'ı yeniden başlatın, tekrar giriş yapın ve Kütüphane (Library) bölümüne gidin.
  3. Unreal Editor for Fortnite'ın yanındaki üç noktaya tıklayın, Yönet (Manage) seçeneğini seçin ve ardından Doğrula (Verify) butonuna tıklayın.
  4. Bazen kademeli güncellemeler sırasında bölgesel Matchmaking düğümleri geçici olarak aşırı yüklenebilir veya senkronizasyon dışı kalabilir. UEFN'de ayarlarınıza gidin ve Matchmaking bölgenizi geçici olarak 'Auto' yerine belirli bir komşu bölgeyle (örneğin Brezilya'dan ABD-Doğu'ya geçerek) değiştirin. Bu işlem, Backend'i farklı bir bölgesel alt ağda (subnet) bir sunucu konteyneri tahsis etmeye zorlar, yerel yönlendirme yoğunluğunu atlatır ve temiz bir host düğümünde beacon handshake sürecini yeniden başlatır.
  5. UEFN'i başlatın, projenizi açın ve bir oturum başlatmayı deneyin. Bu süreç, editörün yerel build meta verilerini canlı Matchmaking Backend'i ile senkronize etmesini sağlayacaktır.

horizOn ile Matchmaking Darboğazlarını Azaltma

Dedicated Server Beacon'larını yapılandırmak, sürdürmek ve ölçeklendirmek, Multiplayer mühendisliğinin en karmaşık yönlerinden biridir. Matchmaking'i koordine etmek, isteğe bağlı sunucu instance'ları ayağa kaldırmak ve bölgesel yönlendirmeyi yönetmek için özel bir Backend oluşturmak; yük dengeleyiciler (load balancers), veritabanı sharding ve SSL sertifika yönetimi kurmayı gerektirir ve bu da deneyimli bir Backend mühendisi için rahatlıkla 4-6 haftalık bir altyapı işi demektir.

horizOn entegrasyonu sayesinde bu karmaşık Backend servisleri kutudan çıktığı gibi önceden yapılandırılmış olarak gelir. Platform tarafından sunulan oyun sunucusu yöneticisi (game server manager), bölgesel konteyner tahsisini otomatik olarak üstlenir, sunucu sağlığını izler ve istemcilerin sessiz UDP paket düşüşleri veya sürüm uyuşmazlığı hataları yaşamadan host beacon'ları ile güvenli bir şekilde handshake yapabilmesini sağlar. horizOn ile düşük seviyeli oturum yönlendirme (session routing) karmaşıklığını kendini kanıtlamış özel bir sunucu platformuna bırakarak, tamamen oynanış mantığı yazmaya ve etkileyici dünyalar tasarlamaya odaklanabilirsiniz.

Unreal Engine Oturum Bağlantıları İçin Kendini Kanıtlamış En İyi Pratikler

  1. Dinamik Beacon Zaman Aşımı Yeniden Denemeleri Uygulayın: Tek bir bağlantı girişimine güvenmeyin. Kullanıcıya hata göstermeden önce bağlantıyı üstel geri çekilme (exponential backoff) ile (örneğin 2.0sn, 4.0sn ve 8.0sn) 3 kez yeniden deneyecek bir istemci tarafı (client-side) döngüsü uygulayın.
  2. Sanal Ağ Bağdaştırıcılarını Devre Dışı Bırakın: Windows Ağ Bağlantıları ayarlarınızda kullanılmayan sanal bağdaştırıcıları (Docker, Hamachi veya eski VPN kurulumları tarafından oluşturulanlar gibi) devre dışı bırakın. Bu bağdaştırıcılar, istemci socket'lerinin bağlanma (binding) sırasını değiştirebilir ve Unreal'ın UDP paketlerini çıkmaz yollara yönlendirebilir.
  3. MTU Üzerinden Giden Paket Yaşam Sürelerini İzleyin: Yönlendiricinizin Maksimum İletim Birimi (MTU) çok düşük yapılandırılmışsa, oturum token'larını barındıran büyük handshake paketleri parçalanacaktır (fragmented). Herhangi bir parça düştüğünde, tüm paket kaybolur. Büyük ağ yüklerini barındırabilmek için yönlendiricinizin MTU değerinin standart 1500 bayt olarak ayarlandığından emin olun.
  4. Ağ Handshake Durumlarını Log'layın: Geliştirme sürecinde AOnlineBeaconClient::GetConnectionStateString() fonksiyonunun detaylı durumlarını her zaman log'layın. Bu, hatanın DNS çözümlemesi, socket binding veya gerçek paket handshake'i sırasında mı oluştuğuna dair anında tanı kanıtı sağlar.
  5. Handshake'ler Sırasında Wireshark UDP Filtrelerini Kullanın: Yerel olarak bağlantı hatalarını giderirken (debugging), Wireshark üzerinde udp.port == 7777 || udp.port == 15000 or Unreal'ın dinamik port aralığına karşılık gelen daha geniş bir filtre uygulayarak bir paket yakalama (packet capture) çalıştırın. Yanıt almayan giden SYN eşdeğeri kontrol paketlerini arayın. Giden trafik görüyor ancak gelen paket göremiyorsanız, istemci yönlendiricisindeki veya bulut sunucu (cloud host) konteynerindeki firewall handshake trafiğini engelliyor demektir.

Sonuç

UEFN'deki bağlantı hatalarını çözmek, ağ yapılandırmalarına metodik bir yaklaşım gerektirir. Giden firewall izinlerinin açık olduğundan emin olarak, bozulmuş ağ önbelleklerini temizleyerek ve sürüm senkronizasyonunu doğrulayarak, can sıkıcı failed to connect to beacon uefn döngüsünü ortadan kaldırabilirsiniz.

Multiplayer Backend'inizi ölçeklendirmeye ve ağ yapılandırma zahmetlerinden kurtulmaya hazır mısınız? horizOn platformunu ücretsiz deneyin veya özel session hosting'in ne kadar basit olabileceğini görmek için API belgelerini inceleyin.


Kaynak: "Failed to connect to beacon" upon launching session