IBM Support

WebSphere DataPower binary transform or call fails with "Missing input on action"

Troubleshooting


Problem

A DataPower binary transform action or call action may fail with "missing input on action" if the input to the action is empty.

Symptom

The input context to a binary transform in a service processing policy may be empty in several scenarios, including:

  • The service has an HTTP or HTTPS front side handler, and the client sends an HTTP GET request, not an HTTP POST request
  • The service has an FTP Server front side handler, and the client sends a LIST request, not a PUT request

In these cases, if the service processing policy contains a binary transform with an input context INPUT, the binary transform will fail with message:

Transforming (possibly binary) INPUT with mystylesheet.xsl failed: Missing input on action

Similarly, if a Call action with an input context as "INPUT" is the first action defined on a Processing Rule, a GET request method will fail with a parser error: "missing input on action". In this case the error message indicates that an "empty input is not allowed for this action"

Cause

The message "missing input on action" is meant to convey "empty input is not allowed for this action". A binary transform needs non-blank input to work properly.

This error may occur intermittently in a development or test environment. Note that when the DataPower probe is on, this error might not occur. The debug capabilities in the probe can affect how the input is treated. Be sure to test services without the probe prior to deploying them in production, where best practices suggest that the probe always be disabled.

Diagnosing The Problem

The error message will include the name of the binary transform action that was invoked with empty input.

Resolving The Problem

If a service must support empty requests (requests with no payload) such as HTTP GETs or FTP LIST commands, modify the processing policy so that the binary transform is not invoked with an empty input context.

Option to consider include:

  • The Convert Query Params to XML action can transform HTTP GET request parameters into an XML document that can be used as the input context to a binary transform.
  • The match action for processing rules can be based on the HTTP method.
  • DataPower context variables that describe the input request can be interrogated in a stylesheet to determine if the input context is empty.
  • Defining a dummy transform action at the beginning of the processing rule with an input context as "INPUT" and output context as "NULL" has been used as a workaround to allow a policy that formerly began with a call action to support empty requests such as HTTP GETs. Once the dummy transform action has completed, the call action does not try to parse the INPUT again.

[{"Product":{"code":"SS9H2Y","label":"IBM DataPower Gateway"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"General","Platform":[{"code":"PF009","label":"Firmware"}],"Version":"7.7;7.6;7.5.2;7.5.1;7.5;7.2;7.1","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
15 June 2018

UID

swg21566838