As it turns out, requesting 300 fields can result in a >10,000-character URL which, understandably, is met with ECONNRESET.
Moving the potentially large '_source' array from URL parameters to the HTTP request body shrinks the URL back down to transmittable length.
Previously, the way these ES requests were built leads to response errors to requests for around 80–110 fields.
(Particularly affects logic using searchShim.js)
As it turns out, requesting 300 fields can result in a >10,000-character URL which, understandably, is met with ECONNRESET. Moving the potentially large '_source' array from URL parameters to the HTTP request body shrinks the URL back down to transmittable length.
Previously, the way these ES requests were built leads to response errors to requests for around 80–110 fields.
Reported by @mgaynor1