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.)

Doc link.