What's new
- Fix
FormData.readAsBytesexcessive memory usage with large payloads by replacing the O(n²)reduce+spread approach with a pre-allocatedUint8List. - Fix request hanging indefinitely when async interceptor callbacks throw without calling the handler.
- Fix
HttpException: Connection closed before full header was receivedbeing reported asDioExceptionType.unknown. - Add
transformTimeoutto bound long-running response transformations, including background JSON decoding.
On web, timeout handling is best-effort because synchronous JavaScript work cannot be preempted. - Fix
FormData.clone()droppingboundaryNameandcamelCaseContentDisposition, so a retried multipart request now keeps the original options instead of silently falling back to the defaults. - Fix
QueuedInterceptorstalling its queue forever when the active request is cancelled while its callback is still pending (never callsnext/resolve/reject), which blocked every subsequent request routed through the interceptor. - Fix
ErrorInterceptorHandler.reject(..., true)not continuing to following error interceptors in queued interceptors.