## a message with an invalid boolean value

## VALID_HEADER includes a LENGTH Header and LENGTH Body
VALID_HEADER method_call

HEADER_FIELD INTERFACE
TYPE STRING
STRING 'org.freedesktop.Foo'
HEADER_FIELD MEMBER
TYPE STRING
STRING 'Bar'
HEADER_FIELD PATH
TYPE OBJECT_PATH
OBJECT_PATH '/foo'

ALIGN 8
END_LENGTH Header

START_LENGTH Body
TYPE BOOLEAN
BYTE 3
END_LENGTH Body
