Proje: Okul B2B App · Hub: Okul B2B App — Incidents
Android FormData Upload “Network request failed”
Kaynak: docs/troubleshooting/REACT_NATIVE_ANDROID_UPLOAD_TROUBLESHOOTING.md
Semptom
Android cihazlarda fotoğraf yükleme "Network request failed" hatası veriyor. %100 başarısızlık oranı Android’de. iOS’ta aynı kod çalışıyor.
WARN Request failed, retrying (attempt 1/2) - Network request failed
ERROR Max retries exceeded [ConnectionError: Network request failed]
Root Cause
Android’de React Native fetch API ile FormData kullanımı NSURLSession’dan farklı çalışır. Android network stack, binary dosya upload için FormData objesini iOS gibi serialize etmez.
- iOS:
NSURLSession→ mature FormData, consistent binary serialization - Android: Farklı network stack, FormData binary dosya sorunları
Çözüm
expo-file-system/legacy.uploadAsync(MULTIPART) kullanıldı:
await FileSystem.uploadAsync(
`${baseUrl}/customer/media`,
fileUri,
{
fieldName: 'media',
httpMethod: 'POST',
uploadType: FileSystem.FileSystemUploadType.MULTIPART,
headers: { ...headersWithoutContentType } // Content-Type kaldır
}
)İlgili Commit
Android-spesifik upload fallback. Detaylar services/MediaService.ts içinde uploadMediaAndroidFileSystem ve uploadMediaAndroidXHR.
Related
- android-medya-yukleme-sorunu — genel Android upload incident
- medya-yukleme-akisi — upload flow