KB Article #182435
Unexpected parsing or IO error from Connect to URL filter after upgrade from prior version
Problem
After upgrade from 7.5.x or 7.6.x to 7.7 and later, a formerly working policy starts to fail when it encounters a Connect to URL filter. And, the error message and stack trace have an unexpected parse error, with ConnectToURLProcessor coercer or parser listed in the stack trace, resembling the following:
ERROR java exception: java.lang.RuntimeException: unexpected IO error reading an array of UTF-8 at com.vordel.coercers.HeaderSetCoercer.convert(HeaderSetCoercer.java:20) [...] at com.vordel.circuit.net.ConnectToURLProcessor.evalHeaders(ConnectToURLProcessor.java:94) [...] Caused by: java.io.IOException: Unexpected end of input reading header at com.vordel.mime.HeaderSet.parseMIME(HeaderSet.java:596) at com.vordel.coercers.HeaderSetCoercer.convert(HeaderSetCoercer.java:16) ... 38 more
Older variation:
ERROR java exception: java.lang.RuntimeException: IO error creating body from text at com.vordel.coercers.BodyCoercer.convert(BodyCoercer.java:23) [...] at com.vordel.circuit.net.ConnectToURLProcessor.evalBody(ConnectToURLProcessor.java:83) [...] Caused by: java.io.IOException: Unexpected end of input reading header at com.vordel.mime.HeaderSet.parseMIME(HeaderSet.java:567)
Resolution
Find the relevant Policy and Filter in your Policy Studio project, and check that the Connect to URL filter does not have an empty field, or if there is a value then check that there is no trailing space after the entry.
Please see online docs for Connect to URL regarding proper trailing CRLF when using custom entries, or the default attributes that should exist in Request Body and Request Protocol Headers fields. (${content.body} and ${http.headers} respectively, but with no trailing space or CRLF.)