Genel

Feign Client Hatası Oluştu Çözüm Yöntemleri 2026

28 Eylül 2026 18:31

Feign Client bağlantısında mesele yaşayan geliştiriciler önce isteğin cidden amaç servise ulaşıp ulaşmadığını kontrol ediyor. Ardından HTTP yanıtı inceleniyor. Hatanın kaynağı netleştiğinde yapılandırma üzerinden müdahale edilebiliyor.

Feign Client hatası, Java uygulamalarında uzak HTTP servisine yapılan isteğin başarısız olması ortaya çıkmaktadır. Hatanın saiği tek meseleye bağlı değildir. Sunucu yanıtları, bağlantı problemleri, süre aşımı, kimlik doğrulama, geçersiz URL, HTTP durum kodları veya yanıt verisinin çözümlenememesi hâle yol açabilmektedir. 2026 yılında kullanılan Spring Cloud OpenFeign sürümlerinde hata yönetimi için ErrorDecoder, Retryer, Request.Options ile istemci yapılandırmaları yararlanılmaktadır.

Feign Client hatası zemin geliştiriciler için ilk basamak, ekranda görülen exception mesajını geçerliden incelemektir. Sadece FeignException ifadesine bakmak yeterli değildir. HTTP hâl kodu, istek adresi, hata gövdesi, timeout bilgisi ile uygulama logları birlikte değerlendirilmelidir. OpenFeign tarafında 2xx dışındaki HTTP yanıtları hata işleme mekanizmasına aktarılmaktadır.

Feign Client Hatası Oluştu Çözüm Yöntemleri 2026

Feign Client bağlantısında mesele yaşayan geliştiriciler önce isteğin cidden amaç servise ulaşıp ulaşmadığını kontrol ediyor. Ardından HTTP yanıtı inceleniyor. Hatanın kaynağı netleştiğinde yapılandırma üzerinden müdahale edilebiliyor.

İlk kontrol edilmesi gereken alan url değeridir. @FeignClient tanımında kullanılan servis adresi hatalıysa istemci uygun sunucuya ulaşamamaktadır. Spring Cloud OpenFeign, name ile url kıymetlerini istemci oluştururken kullanmaktadır. Güncel sürümlerde name alanı zorunlu tutulmaktadır.

Bağlantı kuruluyor fakat yanıt geç geliyorsa timeout ayarları incelenmelidir. OpenFeign tarafında connectTimeout bağlantının kurulması için ayrılan vadeyi belirlemektedir. ReadTimeout ise bağlantı kurulduktan sonra yanıtın alınması için beklenen zaman dilimiyi kontrol etmektedir. Müddetler oldukça düşük belirlenmişse uzak servis çalışmasına rağmen istemci hata verebilmektedir.

Kimlik doğrulama kaynaklı hatalarda gönderilen header itibarları kontrol edilmelidir. Token süresi dolmuşsa servis 401 yanıtı döndürebilmektedir. OpenFeign, RequestInterceptor üzerinden istek headerlarına müdahale edilmesine izin vermektedir. OAuth2 kullanımı bulunan projelerde erişim tokenının uygun istemci üzerinden alınması da kontrol edilmelidir.

404 hatasında endpoint adresi ile HTTP metodunun kontrol edilmesi icap etmektedir. Feign tarafında 404 yanıtı varsayılan hata davranışına girebilmektedir. Dismiss404 yapılandırması kullanılarak 404 yanıtlarının işlenme formu değiştirilebilmektedir. Ayarın kullanılması hatayı otomatik olarak çözmemektedir. Uygulamanın beklediği davranışa göre yapılandırılması icap etmektedir.

500, 502, 503 veya 504 türündeki sunucu kaynaklı yanıtlar görüldüğünde karşı servisin durumunun incelenmesi gerekmektedir. OpenFeign tarafında ErrorDecoder kullanılarak HTTP hataları uygulamaya ayrıcalıklı exception strüktürlerine dönüştürülebilmektedir. Güncelden denenmesi uygun olan vaziyetlerde RetryableException kullanılabilmektedir. Exception Retryer mekanizmasının devreye girmesini sağlamaktadır.

Retry ayarlarında da dikkatli olunmalıdır. OpenFeign'in kendi davranışı ile Spring Cloud OpenFeign'in varsayılan yapılandırması aynı değildir. Spring Cloud OpenFeign güncel belgelerinde Retryer.NEVER_RETRY varsayılan bean olarak tanımlanmaktadır. Yapılandırma tazeden denemeyi devre dışı bırakmaktadır. Feign çekirdeğinde ise tazeden deneme mekanizması Retryer üzerinden yönetilmektedir.

Yanıt JSON formatında olmasına rağmen Java nesnesine dönüştürülemiyorsa Decoder yapılandırması incelenmelidir. Spring Cloud OpenFeign varsayılan olarak ResponseEntityDecoder ile SpringDecoder tabanlı decoder sağlamaktadır. API yanıtının modeliyle Java tarafındaki DTO yapısı uyuşmuyorsa decode aşamasında hata oluşabilmektedir.

Başka kontrol noktası load balancer yapısıdır. Spring Cloud LoadBalancer classpath üzerinde bulunduğunda Feign istemcisi FeignBlockingLoadBalancerClient üzerinden çalışabilmektedir. Servis keşfi kullanılıyorsa servis adı, instance vaziyeti, port bilgisi ile amaç endpoint kontrol edilmelidir.

2026 itibarıyla Spring Cloud OpenFeign projesi feature-complete olarak tanımlanmaktadır. Resmi belgelerde bakım kapsamında hata düzeltmeleri ile ufak topluluk katkılarının sürdürüleceği dile getirilmektedir. Taze projelerde Spring HTTP Service Clients seçeneğine geçiş de önerilmektedir.

Feign Client hatasının çözümünde tek ayarı değiştirmek yerine exception çeşiti, HTTP konum kodu, endpoint, timeout, header, decoder ile retry yapılandırmasının birlikte incelenmesi icap etmektedir. Hatanın gerçek gerekçeyi loglarda görülen alt exception üzerinden takip edildiğinde karşılık süreci daha net ilerlemektedir.